JSP 페이지 점프 관련(포워딩, 리디렉션, 세션 및 쿠키, 애플리케이션)
8588 단어 공부 노트
1. 페이지 점프 데이터 전송
샘플 코드
welcome.jsp
.getParameter("username");
String upwd=request.getParameter("password");
String[] zu=request.getParameterValues("hobby");
out.print(uname+"
");
out.print(upwd+"
");
for(String s:zu){
out.print(s+"
");
}
%>
1.요청(전달)
포워딩은 서버 동작으로 주로 쿼리에 사용되며 일회성 요청이며 매개변수를 전달할 수 있으며 URL은 변경되지 않습니다.
//转发的参数传递
request.setAttribute("keyname", uname);
request.setAttribute("keypwd", upwd);
//转发的跳转语句
request.getRequestDispatcher("login.jsp").forward(request, response);
//在转发跳转后页面获取变量
//通过html定义的id或name获取
String n1=request.getParameter("username");
String p1=request.getParameter("password");
//通过设定属性值获取
String n2=(String)request.getAttribute("keyname");
String p2=(String)request.getAttribute("keypwd");
2. 반응(리다이렉트)
Redirection은 클라이언트의 동작으로 작업 추가, 삭제, 수정 후 새로 고침에 주로 사용 두 개의 요청으로 일반적으로 사용하지 않는 한 매개변수가 필요하지 않습니까? 스플라이싱, URL은 점프 후 변경되며 리디렉션은 한 번 요청한 것을 가져올 수 없습니다.
//重定向的跳转语句
response.sendRedirect("loginOk.jsp");
3. 중국어 왜곡 솔루션
방법 1 jsp 파일의 본문 위치에 문자 인코딩 설정
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
방법 2: 텍스트 내용을 바이트 데이터로 분할한 다음 인코딩 형식에 따라 접합String n2=(String)request.getAttribute("keyname").getByte[].setCharacterEncoding("utf-8")
방법 3 주의할 점은 URI가 URL이 아니라 근본 원인이다. apache-tomcat-7.0.47\conf 아래 Server.xml
> port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" URIEncoding="UTF-8"/>
Two.session(세션)
페이지 점프라면 세션이다 두 개의 창이 두 개의 세션이라면 session.setAttribute("key", value); session.getAttribute("key"); 한 세션에서 얻을 수 있다
3. 쿠키(캐시)
쿠키(때로는 복수형 쿠키)는 사용자를 식별하고 세션을 추적하기 위해 특정 웹사이트가 사용자의 로컬 터미널에 저장하는 데이터(보통 암호화됨)를 나타냅니다.
//创建cookie对象
Cookie cookie = new Cookie(column_name,column);
respond.addCookie(cookie);
//获取cookie对象
if(cookie != null && cookies.length>0){
for(int i=0;iif(cookies[i].getName().equals("column_name")){
column_name = URLDecoder.decode(cookies[i].getValue,"UTF-8");
}
}
}
%>
4. 신청
Application 개체는 세션 개체와 유사하게 모든 페이지의 변수를 저장하고 액세스하는 데 사용됩니다. 차이점은 모든 사용자가 Application 개체를 공유하고 세션 개체와 사용자 간의 관계가 일대일이라는 점입니다. 응용 프로그램 개체는 프로젝트에 저장되며 서버 i의 내장 속성이며 수명 주기는 서버의 수명 주기와 같습니다.
count = 0;
Object object = application.getAttribute("count");
if(object==null){
count=1;
}else{
count = (Interger)object;
count++;
}
application.setAttribute("count",count);
out.print(count);
%>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django는 어떻게 이메일을 보냅니까?QQ메일로 이메일 보내기 django.core.mail 하위 패키지는 전자메일의 자동 전송 SMT 프로토콜을 봉인했다 이전 준비: QQ번호를 신청하여 QQ번호로 QQ메일에 로그인하고 설정을 수정하여 신청한 QQ번호와...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.