读书人

初学servlet 看了韩顺平的视频 写了

发布时间: 2012-12-30 10:43:15 作者: rapoo

初学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里同样调试下

读书人网 >J2EE开发

热点推荐