web项目404错误统一跳转

项目中可能会因为用户输错地址或其他原因导致404找不到页面的错误.这个时候可以使用web.xml配置统一处理,当发生404错误的时候统一跳转到一个页面

方法:

1.在web.xml中加入

<error-page>
  	<!-- 路径不正确 -->
  	<error-code>404</error-code>
  	<location>/WEB-INF/view/404.jsp</location>
  </error-page>

2.在WEB-INF/view下新建404.jsp页面

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<html>
	<head></head>
	<body>
		<h1>页面去火星了.暂时没回来哦..</h1>
	</body>
</html>

测试:

输入一个错误的地址,效果如下

转载于:https://my.oschina.net/MrBamboo/blog/774614

首先,需要编写login.jsp页面,其中包含一个表单,用户输入用户名和密码,并将其提交给FirstServlet: ```html <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <form action="/servlet/firstServlet.do" 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> ``` 然后,编写FirstServlet,获取用户名和密码,并进行判断: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; 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("/servlet/firstServlet.do") public class FirstServlet 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"); // 从userinfo.txt文件中读取用户名和密码 BufferedReader reader = new BufferedReader(new FileReader(getServletContext().getRealPath("/WEB-INF/userinfo.txt"))); String line = null; boolean success = false; while ((line = reader.readLine()) != null) { String[] parts = line.split(","); if (username.equals(parts[0]) && password.equals(parts[1])) { success = true; break; } } reader.close(); if (success) { // 登录成功,跳转到SecondServlet request.setAttribute("username", username); request.getRequestDispatcher("/servlet/secondServlet.do").forward(request, response); } else { // 登录失败,跳转到failed.jsp response.sendRedirect(request.getContextPath() + "/hw/failed.jsp"); } } } ``` 如果登录成功,将用户名存储在request中,并将请求转发到SecondServlet;如果登录失败,则重定向到failed.jsp页面。 接下来,编写SecondServlet,显示用户名信息: ```java import java.io.IOException; 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("/servlet/secondServlet.do") public class SecondServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = (String) request.getAttribute("username"); response.setContentType("text/html"); response.getWriter().println("<html><head><title>Welcome</title></head><body>"); response.getWriter().println("<h1>Welcome, " + username + "!</h1>"); response.getWriter().println("</body></html>"); } } ``` 最后,编写错误处理页面404.html和500.html,并在web.xml中配置错误页面: ```xml <web-app> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <error-page> <error-code>500</error-code> <location>/500.html</location> </error-page> </web-app> ``` 这样,当出现404或500错误时,就会自动跳转到相应的错误页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值