Invalid <url-pattern> in servlet mapping

我们在使用servlet的过程中会配置web.xml中的url-patterm属性,该属性,比如遵循如下规范:

1、以一个“/”开始,以一个"/*",用以上规范来匹配类似的路径例如/path/*

2、以一个"*."字符开头,最后以具体的某个字符结束

3、一个字符串序列以"/"字符开头,但是不以"*"字符结束

我们配置的url-pattern属性满足其中的规范之一即可。如果都不符合, 则提示Invalid <url-pattern> in servlet mapping错误信息。

下面是一个使用Servlet编写登录注册页面的示例: 首先,需要创建一个Java Web项目。在Eclipse中,可以通过File -> New -> Dynamic Web Project来创建。 接下来,在src目录下创建一个包,例如com.example.servlet,然后在该包下创建两个Servlet类:LoginServlet和RegisterServlet。 LoginServlet.java: ``` package com.example.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if ("admin".equals(username) && "123".equals(password)) { response.sendRedirect("success.jsp"); } else { response.sendRedirect("error.jsp"); } } } ``` RegisterServlet.java: ``` package com.example.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/register") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String email = request.getParameter("email"); // TODO: 将用户名、密码和邮箱保存到数据库中 response.sendRedirect("success.jsp"); } } ``` 在WebContent目录下创建两个JSP页面:login.jsp和register.jsp。 login.jsp: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <form action="login" method="post"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html> ``` register.jsp: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Register</title> </head> <body> <form action="register" method="post"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <label>Email:</label> <input type="email" name="email"><br> <input type="submit" value="Register"> </form> </body> </html> ``` 在WebContent目录下创建两个JSP页面:success.jsp和error.jsp。 success.jsp: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Success</title> </head> <body> <h1>Success</h1> </body> </html> ``` error.jsp: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Error</title> </head> <body> <h1>Error</h1> <p>Invalid username or password.</p> </body> </html> ``` 最后,在web.xml文件中配置Servlet映射: ``` <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.example.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>RegisterServlet</servlet-name> <servlet-class>com.example.servlet.RegisterServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RegisterServlet</servlet-name> <url-pattern>/register</url-pattern> </servlet-mapping> ``` 现在,运行该Web应用程序并访问login.jsp或register.jsp页面即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值