我正在尝试我的forst jsp登录程序。它正确显示登录页面,但是当我提交它时会出现错误:
HTTP状态404 - / UserPass /用户名
输入状态报告
message / UserPass / username
说明请求的资源不可用。
这是我的代码:
username.java
package sid;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class username extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
response.setContentType("text/html");
String user=request.getParameter("username");
String pass=request.getParameter("password");
if(user.equals("sid") && pass.equals("hello"))
{
System.out.println("Welcome");
}
else
{
System.out.println("Invalid username or password");
}
}
}
user.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>Insert title here</title>
</head>
<body>
<h1>Login Page</h1>
<center>
<form action="username" method="GET"> <br/>
User :<input type="text" name="username"> <br/>
Pass :<input type="password" name="password">
<br/><input type="submit" value="Submit"> </form>
</center>
</body>
</html>
的web.xml
<web-app>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>sid.username</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/username/*</url-pattern>
</servlet-mapping>
</web-app>
我的user.jsp代码在WebContect中,我的web.xml在WebContent / WEB-INF / lib中。 我正在使用Eclipse Indigo SR2和Apache Tomcat。
答案 0 :(得分:2)
您应该将web.xml
放在/WEB-INF
中,而不是lib
。
此外,您需要重新启动服务器才能重新加载和反映更改。
答案 1 :(得分:1)
更改您的servlet映射
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/username/*</url-pattern>
</servlet-mapping>
到
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/username</url-pattern>
</servlet-mapping>
答案 2 :(得分:0)
我在web.xml中指出了2-3件事。
首先将 / WEB-INF 中的 web.xml 放在 lib
中第二次检查web.xml中的servlet名称。它应该是用户名,而不是登录。
<servlet>
<servlet-name>username</servlet-name>
<servlet-class>sid.username</servlet-class>
</servlet>
第三次更改此
<servlet-mapping>
<servlet-name>username</servlet-name>
<url-pattern>/username</url-pattern>
</servlet-mapping>
答案 3 :(得分:-1)
按命名法,类名应以大写字母开头,并尝试更改为
form action="/username" method="GET"> <br/>
用户:
通过:
并查看是否有效