我用的是myeclipse新建一个项目生成的文件夹位置大家应该都知道的!下面我就贴一下我的代码和web.xml!希望大家踊跃指出错误啊!
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>lc.user.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/design_web/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
login.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<center>
<form action="design_web/login" method="post">
<table>
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" size="20"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
LoginServlet.java:package lc.user;import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;import lc.web.*;
public class LoginServlet extends HttpServlet { public LoginServlet() {
// TODO Auto-generated con;structor stub
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
this.doPost(request, response);
System.out.println("执行doget操作。。");
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
System.out.println("执行dopost操作。。");
String path="login.html";
String name=request.getParameter("uname");
String pwd =request.getParameter("pwd");
User user=new User();
user.setUname(name);
user.setPwd(pwd);
Login login=new Login();
try
{
if(login.isValidUser(user))
{
// HttpServletRequest req=(HttpServletRequest)request;
// HttpSession session=req.getSession();
request.getSession().setAttribute("uname",user.getUname());
path="success.jsp";
}
else
{
request.setAttribute("error","错误的用户和密码");
}
}
catch(Exception e)
{
e.printStackTrace();
}
request.getRequestDispatcher(path).forward(request,response);
}
}在线等待解决方案,先谢过了啊!
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>lc.user.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/design_web/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
login.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登录页面</title>
</head>
<body>
<center>
<form action="design_web/login" method="post">
<table>
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="uname" size="20"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd" size="20"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
LoginServlet.java:package lc.user;import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;import lc.web.*;
public class LoginServlet extends HttpServlet { public LoginServlet() {
// TODO Auto-generated con;structor stub
}
public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
this.doPost(request, response);
System.out.println("执行doget操作。。");
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{
System.out.println("执行dopost操作。。");
String path="login.html";
String name=request.getParameter("uname");
String pwd =request.getParameter("pwd");
User user=new User();
user.setUname(name);
user.setPwd(pwd);
Login login=new Login();
try
{
if(login.isValidUser(user))
{
// HttpServletRequest req=(HttpServletRequest)request;
// HttpSession session=req.getSession();
request.getSession().setAttribute("uname",user.getUname());
path="success.jsp";
}
else
{
request.setAttribute("error","错误的用户和密码");
}
}
catch(Exception e)
{
e.printStackTrace();
}
request.getRequestDispatcher(path).forward(request,response);
}
}在线等待解决方案,先谢过了啊!
解决方案 »
- Hibernate 插入数据提示 sequence不存在
- JavaSE6.0 Web Service学习笔记
- java导出到excel
- struts弹出对话框关闭问题
- 专业英语问题(3)---Website Spidering
- Struts问题,本来一切正常,但在Struts-config中配置了data-sources后。。。
- 在Jbuilder工程中,WEB应用被自动打包成*.war文件,为什么不能包含以下文件...
- 各位大哥,有没有把sun的petstore做成web层是struts的例子?
- 帮帮忙,看下面的代码,在调试到HelloTest bean = home.create()这一句是时抛出异常
- druid远程连接sqlserver2000遇到以下问题,求解
- =======深夜加班 求教,来帮我看下,多谢
- 依然是Hibernate出错的问题!
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at lc.user.LoginServlet.doPost(LoginServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)这一段啊!
这行是什么,我可不是神仙啊
知道你的问题出在哪里了
<servlet-mapping>
<servlet-name>login </servlet-name>
<url-pattern>/design_web/* </url-pattern>
</servlet-mapping> 因为你的servlet映射路径是/design_web/* ,也就是design_web路径下的所有请求都会请求你的LoginServlet,
跳转时:request.getRequestDispatcher(path).forward(request,response); 因为你当前的请求路径是design_web下面,即就是请求design_web\success.jsp,而你配置的<url-pattern>/design_web/* </url-pattern> 把design_web\success.jsp拦截,又执行LoginServlet,这样就会导致死循环。解决办法:
<servlet-mapping>
<servlet-name>login </servlet-name>
<url-pattern>/design_web/login </url-pattern>
</servlet-mapping>
1.<servlet-mapping>
<servlet-name>login </servlet-name>
<url-pattern>/login </url-pattern>
</servlet-mapping> 2.request.getRequestDispatcher("../success.jsp").forward(request,response);如果有问题,应该把错误停息贴出来。5
<url-pattern>/login/ </url-pattern>
把
<form action="design_web/login" method="post">
改成
<form action="login" method="post">
在看看能不能跳到servlet里面去