MVC架构中的servlet层重定向404小坑

2024-05-30 00:36

本文主要是介绍MVC架构中的servlet层重定向404小坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

servlet层中的UserLoginServlet.java

package com.mhys.servlet; /*** ClassName: ${NAME}* Description:** @Author 数开_11* @Create 2024-05-29 20:32* @Version 1.0*/import com.mhys.pojo.User;
import com.mhys.service.UserService;
import com.mhys.service.impl.UserServiceImpl;import javax.naming.Name;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.lang.annotation.Repeatable;
import com.mhys.servlet.UserLoginServlet;
@WebServlet(name = "UserLoginServlet",value = "/UserLoginServlet")
public class UserLoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");String name = request.getParameter("name");String pwd = request.getParameter("pwd");// 创建userServletUserService service = new UserServiceImpl();User user = service.findByNameAndPassword(name, pwd);if (user != null) {request.getRequestDispatcher("/index.jsp").forward(request, response);
//            response.sendRedirect("/login.jsp");} else {request.setAttribute("msg", "user/pwd错误哦");request.getRequestDispatcher("/login.jsp").forward(request, response);
//            response.sendRedirect("login.jsp");}}
}

创建servlet映射对应到页面表单的跳转

login.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><style>.centered-element{margin: 300px auto ;width: 200px;display: block;}</style><meta charset="UTF-8" ><title>HadoopWebLogin</title>
</head>
<body><form action="/UserLoginServlet" class="centered-element">
<%--        使用外部css来居中这个table--%><table class="centered-element">
<%--            caption标签定义了表格的标题--%><caption>用户登录</caption>
<%--            tr标签表示的时表格的row--%><tr>
<%--                td标签表示的是单元格cell--%><td>账户:</td>
<%--    input标签是一个输入的控件--%><td><input type="text" name="name"></td></tr><tr><td> 密码: </td><td><input type="text" name="pwd"></td></tr><tr><td><input type="submit" value="登录"></td><td><input type="reset" value="重置"></td></tr>
<%--    从request域中拿info--%><tr><td colspan="2"><span style="color: red;">${msg}</span></td></tr></table></form></body>
</html>

submit之后去找servlet层中的UserLoginServlet.java 进行逻辑判断---> 重定向操作

注!: 这里必须要在web.xml中配置上!!!!!(我是在这里犯错了,U小写了,找了半天没看出了,笑晕)

   <servlet>    <servlet-name>UserLoginServlet</servlet-name><servlet-class>com.mhys.servlet.UserLoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>UserLoginServlet</servlet-name><url-pattern>/UserLoginServlet</url-pattern></servlet-mapping>
 

这里的webservlet中的路径是严格区分大小写的,写错小个小点都会在登录时重定向报404找不到资源!!!!

另一个注意点:就是创建对象获取数据库中的user/pwd时new 数据类型是UserService 父类

不要是接口的实现类

 utils 层中的JDBCUtils.java

package com.mhys.util;import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;/*** ClassName: JdbcUtils* Description:** @Author 数开_11* @Create 2024-05-29 17:46* @Version 1.0*/
public class JdbcUtils {public static Connection getConnection() throws Exception{Connection connection=null;try{//1-读取db.properties文件Properties properties=new Properties();InputStream in=JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");properties.load(in);//2-读取属性String driver=properties.getProperty("driver");String url=properties.getProperty("url");String username=properties.getProperty("username");String password=properties.getProperty("password");//3-注册驱动Class.forName(driver);//4-获取连接connection= DriverManager.getConnection(url,username,password);//5-日志打印连接信息System.out.println("连接信息: " + url + " " + username + " " + password);} catch (Exception e) {e.printStackTrace();throw new RuntimeException("数据库连接失败,请检查连接参数是否正确!");}return connection;}
}

和项目的资源目录下配置db.properties文件

内容:
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:33306/javaweb?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
username=root
password=root

这篇关于MVC架构中的servlet层重定向404小坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015076

相关文章

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

nginx中重定向的实现

《nginx中重定向的实现》本文主要介绍了Nginx中location匹配和rewrite重定向的规则与应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 目录一、location1、 location匹配2、 location匹配的分类2.1 精确匹配2