我用的是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);
}
}在线等待解决方案,先谢过了啊!
解决方案 »
- 我的JSP只能通过ACTION访问?
- java urlrewrite 访问的页面样式失效
- 如何去看一个J2EE项目。
- jsp生成的servlet中文乱码怎么解决?急需高手解决!!!
- ireport中的表格怎么画的?
- 权限里面角色和职位有什么不同
- (急求答案)Hibernate中的映射查询问题:双向向多对一关系中如何实现在多的一方实现查询???
- 事务能否嵌套?能的话应该怎么写?有什么作用?不能的话为什么?
- WINDOWS 系统环境设置
- 大家好,请教Struts里面ActionForm获得一个String[]的问题!
- =======深夜加班 求教,来帮我看下,多谢
- 依然是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里面去