首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

初学servlet 看了韩顺平的视频, 写了简单用户登录的代码,继承了Httpservlet ,发现不能进行页面跳转,各位大神看看,小弟没分,真心

2012-12-30 
初学servlet看了韩顺平的视频, 写了简单用户登录的代码,继承了Httpservlet ,发现不能进行页面跳转,各位大

初学servlet 看了韩顺平的视频, 写了简单用户登录的代码,继承了Httpservlet ,发现不能进行页面跳转,各位大神看看,小弟没分,真心求助
Login.java
public class Login extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){

try{

res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("<h1>登陆界面</h1>");
pw.println("<form action=lo method=post>");
pw.println("用户名:<input type=text name=username</br>");
pw.println("密码:<input type=password name=passwd></br>");
pw.println("<input type=submit value=login>");
    pw.println("</form>"); 
pw.println("</body>");
pw.println("</html>");
}
catch(Exception e){

e.getStackTrace();

}



}
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);

}



}



LoginCl.java


public class LoginCl extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){

try{
 String w=req.getParameter("username");
 String s=req.getParameter("passwd");
   
   if(w.equals("sp")&&s.equals("123")){
      res.sendRedirect("wel");
   }
else
{

res.sendRedirect("login");
    }

}
catch(Exception e){

e.getStackTrace();

}



}
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doPost(req,res);

}



}





Wel.java
public class Wel extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){

try{
 PrintWriter pw=res.getWriter();
 pw.println("hello,welcom");
}
catch(Exception e){

e.getStackTrace();


}



}
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);

}



}




Web.xml

<servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>com.hehang.Login</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>



<servlet>
    <servlet-name>logincl</servlet-name>
    <servlet-class>com.hehang.LoginCl</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>logincl</servlet-name>
    <url-pattern>/lo</url-pattern>
  </servlet-mapping>


<servlet>
    <servlet-name>wel</servlet-name>
    <servlet-class>com.hehang.Wel</servlet-class>


</servlet>

<servlet-mapping>
    <servlet-name>wel</servlet-name>
    <url-pattern>/wel</url-pattern>
  </servlet-mapping>


[解决办法]
pw.println("<form action=lo method=post>");
你这个请求的方法是post 
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doPost(req,res);

}
但是你处理的时候是在doGet里面做的,而doPost()方法里面又没调用doGet,所以进去就一片空白了
把 this.doPost(req,res)改为this.doGet(req,res);




[解决办法]

引用:
pw.println("<form action=lo method=post>");
你这个请求的方法是post 
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doPost(req,res);

}
但是你处理的时候是在doGet里面做的,而doPost()方法里面又没调用doG……


正解
[解决办法]
引用:
public void doPost (HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}

doPost()方法修改后依旧一样跳转到logincl页面一片空白。

你要保证doGet中写的逻辑不会导致页面空白,redirect到哪个servlet了,在那个servlet里同样调试下

热点排行
Bad Request.