Spring-MVC写Java web

Spring-MVC框架模块简介

该框架后台大致分为util,controller,dao,entity,service,如图所示:

下面我建立一个method(updateUser)为例子,来讲解整个过程

UserMapper层

与数据库交互

在UserMapper层定义新方法

@Param是指可以从jsp中接收参数进来

1
2
3
4
@Repository
public interface UserMapper {
public void updateUser(@Param("id")Integer id);
}

在UserMapper.xml中定义新方法对应的SQL语句

其中,update id 的值是定义的新方法的名称,#{id}代表键值id里的值

1
2
3
<update id= "updateUser" parameterType="edu.scdx.entity.User">
UPDATE user SET name = '哈哈' WHERE id = #{id}
</update>

UserService层

实现方法

在UserService中写一个Interface来初始化

1
2
3
public interface UserService {
public void updateUser(Integer id);
}

在UserServicelmpl中覆用UserMapper中的方法

@Override是覆用,在这儿会调用UserMapper里的updateUser

1
2
@Override
public void updateUser(Integer id){ userMapper.updateUser(id);}

UserController层

与前台交互

在UserControler中调用用UserService中的方法

请求访问了一个页面叫做updateUser.do.并且返回了一个jsp的名字

1
2
3
4
5
@RequestMapping("/updateUser.do")
public String updateUser(Model model, HttpSession session, HttpServletResponse response, Integer id, String name, Integer age, User user){
userService.updateUser(id);
return "updateOK";
}

在jsp文件中,添加一个叫做updateOK.jsp的文件

是一个返回页面,我的返回页面上只有一个界面显示着“更新成功”

1
2
3
4
5
6
7
8
9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
更新成功
</body>
</html>

并且这一步骤通过mvc.xml中规约来进行限定

1
2
3
4
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!--prefix标签中value接收在controller层里返回的值,然后前面加上/WEB-INF/jsp/后面加上suffix中的value(.jsp)进行访问-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>

之后更改相应的main.jsp访问

1
<a href="${pageContext.request.contextPath }/user/updateUser.json?id=2">修改id为2的用户的名字</a>

总结

本次例子中,id=2通过@Param传递到UserController中,接着调用了UserService[1]里的代码,而它调用了userMapper里与数据库交互的方法,最终,完成了更新了一个id为2的用户的姓名的操作

这是一个java-web-demo

打赏还是得开着的,万一有人打赏呢?