第一(---->).response和request的区别:
1.response,重定向访问,可以访问项目之外的资源,暂时不可以携带参数,地址栏有变化,两次请求
2.request,转发,请求项目内的资源,可携带参数,地址栏不变化,一次请求。
3.访问的实例:
<%
/* request.setCharacterEncoding("utf-8");//post乱码解决 */
String username=request.getParameter("username");
/* session.setAttribute("username",username); */
/* username=new String(username.getBytes("iso-8859-1"),"utf-8");//get解决方案 */
String password=request.getParameter("password");
String[] hobbies=request.getParameterValues("hobby");
for(int i=0;i<hobbies.length;i++){
System.out.println(hobbies[i]);
}
System.out.println(username+"------"+password);
if(username.equals("admin")&&password.equals("admin")){
request.setAttribute("username",username);
request.getRequestDispatcher("main.jsp").forward(request, response);//转发请求项目内的资源,可携带参数,地址兰不变化,一次请求
}else{
request.setAttribute("msg", "用户名或者密码错误");
request.getRequestDispatcher("login.jsp").forward(request,response);
/* response.sendRedirect("login.jsp");//重定向可以访问项目外的,不可携带参数,地址栏变化,两次请求 */
}
%>
第二(--->).解决乱码问题:
1.解决post乱码问题:
request.setCharacterEncoding("utf-8");
2.解决get乱码问题:
例如:客户端输入中文用户名:
String username=request.getParameter("username");
username=new String(username.getBytes("iso-8859-1"),"utf-8");
第三(---->).表单跳转页面
1.实例:<body>内的内容:
<form action="doLogin.jsp" method="get">
<div>
<% String msg=(String)request.getAttribute("msg");
if(msg!=null){
%>
<%=msg %>
<% }%>
</div>
<table>
<tr><td>用户名:</td>
<td><input type="text" id="username" name="username"></td>
</tr>
<tr><td>密码:</td>
<td><input type="password" id="password" name="password"></td>
</tr>
<tr><td>爱好</td><td><input type="checkbox" name="hobby" value="running">跑步
<input type="checkbox" name="hobby" value="游泳">游泳
<input type="checkbox" name="hobby" value="basketball">篮球
<input type="checkbox" name="hobby" value="reading">读书
</td></tr>
<tr align="center">
<td colspan="2"><input type="submit" value="注册"><input type="reset" value="重置">
</td>
</tr>
</table>
</form>
第四(----->).application
1.全局对象,只要服务器不关每访问一次它就加1
<%
Integer count=(Integer)application.getAttribute("count");
if(count==null){
count=1;
}else{
count++;
}
application.setAttribute("count", count);
%>
网站访问人数<%=count %>
第五(------>).session
1.session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
第六(----->).Cookie
1.保存信息在本地,下次登录直接记住登录信息
/* Cookie cookie=new Cookie("username",username); */
Cookie cookie=new Cookie("username",URLEncoder.encode(username,"UTF-8"));//解决中文问题,进行加密
cookie.setMaxAge(50);//设置清除时间
response.addCookie(cookie);
response.sendRedirect("index.jsp");
客户端接收
Cookie[] cookies=request.getCookies();
String username2="";
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("username")){
/* username2=cookies[i].getValue(); */
username2=URLDecoder.decode(cookies[i].getValue(),"UTF-8");//中文解密
}
}
1.response,重定向访问,可以访问项目之外的资源,暂时不可以携带参数,地址栏有变化,两次请求
2.request,转发,请求项目内的资源,可携带参数,地址栏不变化,一次请求。
3.访问的实例:
<%
/* request.setCharacterEncoding("utf-8");//post乱码解决 */
String username=request.getParameter("username");
/* session.setAttribute("username",username); */
/* username=new String(username.getBytes("iso-8859-1"),"utf-8");//get解决方案 */
String password=request.getParameter("password");
String[] hobbies=request.getParameterValues("hobby");
for(int i=0;i<hobbies.length;i++){
System.out.println(hobbies[i]);
}
System.out.println(username+"------"+password);
if(username.equals("admin")&&password.equals("admin")){
request.setAttribute("username",username);
request.getRequestDispatcher("main.jsp").forward(request, response);//转发请求项目内的资源,可携带参数,地址兰不变化,一次请求
}else{
request.setAttribute("msg", "用户名或者密码错误");
request.getRequestDispatcher("login.jsp").forward(request,response);
/* response.sendRedirect("login.jsp");//重定向可以访问项目外的,不可携带参数,地址栏变化,两次请求 */
}
%>
第二(--->).解决乱码问题:
1.解决post乱码问题:
request.setCharacterEncoding("utf-8");
2.解决get乱码问题:
例如:客户端输入中文用户名:
String username=request.getParameter("username");
username=new String(username.getBytes("iso-8859-1"),"utf-8");
第三(---->).表单跳转页面
1.实例:<body>内的内容:
<form action="doLogin.jsp" method="get">
<div>
<% String msg=(String)request.getAttribute("msg");
if(msg!=null){
%>
<%=msg %>
<% }%>
</div>
<table>
<tr><td>用户名:</td>
<td><input type="text" id="username" name="username"></td>
</tr>
<tr><td>密码:</td>
<td><input type="password" id="password" name="password"></td>
</tr>
<tr><td>爱好</td><td><input type="checkbox" name="hobby" value="running">跑步
<input type="checkbox" name="hobby" value="游泳">游泳
<input type="checkbox" name="hobby" value="basketball">篮球
<input type="checkbox" name="hobby" value="reading">读书
</td></tr>
<tr align="center">
<td colspan="2"><input type="submit" value="注册"><input type="reset" value="重置">
</td>
</tr>
</table>
</form>
第四(----->).application
1.全局对象,只要服务器不关每访问一次它就加1
<%
Integer count=(Integer)application.getAttribute("count");
if(count==null){
count=1;
}else{
count++;
}
application.setAttribute("count", count);
%>
网站访问人数<%=count %>
第五(------>).session
1.session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
第六(----->).Cookie
1.保存信息在本地,下次登录直接记住登录信息
/* Cookie cookie=new Cookie("username",username); */
Cookie cookie=new Cookie("username",URLEncoder.encode(username,"UTF-8"));//解决中文问题,进行加密
cookie.setMaxAge(50);//设置清除时间
response.addCookie(cookie);
response.sendRedirect("index.jsp");
客户端接收
Cookie[] cookies=request.getCookies();
String username2="";
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("username")){
/* username2=cookies[i].getValue(); */
username2=URLDecoder.decode(cookies[i].getValue(),"UTF-8");//中文解密
}
}