黑马程序员_JAVA 学习笔记24 WEB篇11

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

下面是重定向,怎样用重定向得到?
   想想重定向的机制?   是不是服务器返回一个信息让用户去访问服务器返回的地


址,
   我们是不是唯一可以做的就是在这个地址上下一些功夫?也就是说根据请求的格式


在后面加一些请求的参数就能实现与请求转发相同的功能 了。
   resp.sendRedirect("session/sessionLogin.jsp?username="+username


+"&radio="+radio);
   servlet里面只需要把else里面的语句换成这一句就可以 了,然后页面改成:
<body>
  <%
 String radio = "";
 String username = "";
 
 if(!session.isNew())
 {
  radio = (String)request.getParameter("radio");
  username = (String)request.getParameter("username");
  if(null == radio || username == null)
  {
  radio = "";
  username = "";
  }
   
 }
  %>
   <form action="sessionLogin">
    <input type = "text" name = "username" value = "<%=username %>">
   1 <input type = "radio" name = "radio" value = "1" <%="1".equals(radio) 


? "checked='checked'" : ""  %>>
   2 <input type = "radio" name = "radio" value = "2" <%="2".equals(radio) 


? "checked='checked'" : ""  %>>
    <input type = "submit" value = "Login">
      </form>
   用重定向之后可以从服务器发回来的请求的地址里面用getParameter得到相应的请


求参数。然后可以获得填冲错误的值。
过滤器:(重要)
过滤器会在请求到达servlet之前就对request对象进行处理,也就是说请求到达过滤器之


前request与response对象就已经生成好了,然后由过滤器处理之后再将由相应的servlet


进行处理,处理完成成之后的response对象再由过滤器进行检查处理后再返回给客户端。
Filter错误应用就启动不 了。


Filter的一个小例子,里面有许多 地方要注意:
<body>
     <%
 String radio = "";
 String username = "";
 
 if(!session.isNew())
 {
  radio = (String)request.getParameter("radio");
  username = (String)request.getParameter("username");
  if(null == radio || username == null)
  {
  radio = "";
  username = "";
  }
   
 }
  %>
   <form action="loginChecked">
    <input type = "text" name = "username" value = "<%=username %>">
   1 <input type = "radio" name = "radio" value = "1" <%="1".equals(radio) 


? "checked='checked'" : ""  %>>
   2 <input type = "radio" name = "radio" value = "2" <%="2".equals(radio) 


? "checked='checked'" : ""  %>>
    <input type = "submit" value = "Login">
   </form>
下面是loginChedked页面:
public class loginChecked extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
// 从请求中得到session对象
HttpSession session = req.getSession();
//用一个JavaBean来存放用户的信息
SessionUser su = new SessionUser();

String username = req.getParameter("username");
String radio = req.getParameter("radio");

if("1".equals(radio))
{
if("zhangsan".equals(username))
{
su.setUsername(username);
su.setRadio(radio);
session.setAttribute("user", su);
session.setAttribute("username", username);
session.setAttribute("radio", radio);
req.getRequestDispatcher


("fileter/success.jsp").forward(req, resp);
}
else
{
resp.sendRedirect("fileter/login.jsp?


username="+username+"&radio="+radio);


}
}
else if("2".equals(radio))
{
if("lishi".equals(username))
{
session.setAttribute("username", username);
session.setAttribute("radio", radio);
su.setUsername(username);
su.setRadio(radio);
session.setAttribute("user", su);

req.getRequestDispatcher


("fileter/success.jsp").forward(req, resp);
}
else
{
req.setAttribute("username", username);
req.setAttribute("radio", radio);

req.getRequestDispatcher


("fileter/login.jsp").forward(req, resp);
}
}
else
{
req.setAttribute("username", username);
req.setAttribute("radio", radio);

req.getRequestDispatcher("fileter/login.jsp").forward


(req, resp);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值