Javaweb项目实践MVC入门到精通
- 目标
- 配置环境
- 实体模型 user Dao的实现
- 实体模型 Model
- View
- Controller :转发任务,路由器的功能
- 安全sql注入
- 常见问题
-
目标
这个目标是写一个MVC模型。通过典型的增删改查的操作实现一个简单的web系统。
M:(Model) 模型 : 应用程序的核心功能,管理这个模块中用的数据和值(bean,dao);
V(View )视图: 视图提供模型的展示,管理模型如何显示给用户,它是应用程序的外观;(jsp/html)
C(Controller)控制器: 对用户的输入做出反应,管理用户和视图的交互,是连接模型和视图的枢纽。
(servlet/service)
MVC是Model、View、Controller的缩写,分别代表Web应用程序中的三种职责:
模型——用于存储数据以及处理用户请求的业务逻辑。
视图——向控制器提交数据,显示模型中的数据。
控制器——根据视图提出的请求,判断将请求和数据交给哪个模型处理,处理后的有关结果交给哪个视图更新显示。
基于Servlet的MVC模式的具体实现如下:
模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。
视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要使用 HTML标记和JavaBean标记来显示数据。
控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。
一个简单的MVC项目:MVC实现用户登录验证程序
其中包括:
实体模型User
业务模型UserCheck,
控制器LoginCheckServlet
两个视图页面。(登陆页面和登录成功)
配置环境
大家有时间可以试试,会遇到各种问题哦,心态要好!!!
IDEA,教育版,用自己的edu结尾的学校的邮箱注册。
tomcat10.0.21
jdk14
IdeaIU2020.3.2
实体模型 user Dao的实现
public User find(String userName, String userPwd) {
try{
User user = null;
Conn conn = new Conn();
con = conn.getCon();```
PreparedStatement pstmt = con.prepareStatement("select * from t_user where name=? and psw=?");
pstmt.setString(1,userName );
pstmt.setString(2, userPwd);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setName(userName);
user.setAge(rs.getInt("age"));
user.setSex(rs.getString("sex"));
user.setUserID(rs.getInt("userID"));
user.setPwd(rs.getString("psw"));
}
con.close();
return user;
}catch (Exception e) {
throw new RuntimeException(e);
}
}
实体模型 Model
package domain;
public class User {
private int userID;
private String name;
private String pwd;
private String sex;
private int age;
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
View
Controller :转发任务,路由器的功能
package controller;
import domain.User;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import service.IUserService;
import service.impl.UserServiceImpl;
import java.io.IOException;
@WebServlet("/LoginDataRec")
public class LoginDataReceive extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginDataReceive() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userName = request.getParameter("username");
String userPwd = request.getParameter("password");
IUserService userService = new UserServiceImpl();
User user = userService.loginUser(userName, userPwd);
if (user!=null)
response.getWriter().println("login succesfully!!!");
else
response.getWriter().println("login failed!!!");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
WebServlet的用法
详情请点我哈哈哈哈
安全sql注入
PreparedStatement pstmt = con.prepareStatement("select * from t_user where name=? and psw=?");
pstmt.setString(1,userName );
pstmt.setString(2, userPwd);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setName(userName);
user.setAge(rs.getInt("age"));
user.setSex(rs.getString("sex"));
user.setUserID(rs.getInt("userID"));
user.setPwd(rs.getString("psw"));
}
常见问题
1路径问题,所有路径都用复制
2 jdk版本
3 tomcat使用jdk的设置,乱码
4 IdeaIU使用方式
5 404的解决方案请看视频
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)