mapper Service servlet html之间的关系
时间: 2024-03-30 21:35:39 浏览: 58
在一个Web应用程序中,通常会使用多个组件来实现不同的功能。这些组件之间有着不同的职责,彼此协作来完成整个应用程序的工作。下面是这些组件的解释:
1. Mapper:Mapper是一个数据访问对象,它的主要作用是将Java对象映射到数据库中的表,并提供对数据库的访问和操作。Mapper通常使用MyBatis等持久化框架来实现。
2. Service:Service层是应用程序的业务逻辑层,它负责协调各个组件来处理业务逻辑,将请求转发给对应的Mapper对象来操作数据库,并将结果交给Controller来展示给用户。
3. Servlet:Servlet是Java Web应用程序中处理HTTP请求的组件。它负责接收来自客户端的请求,根据请求的URL和HTTP方法来调用相应的Service层方法来处理业务逻辑,并将处理结果返回给客户端。
4. HTML:HTML是用于构建Web页面的标记语言,它通过浏览器将页面展示给用户。HTML页面通常使用JavaScript来实现交互功能,例如通过Ajax调用Servlet来获取数据。
因此,这些组件之间的关系如下:客户端通过浏览器发送HTTP请求给Servlet,Servlet调用Service层方法来处理业务逻辑,并将结果传递给HTML页面,HTML页面通过JavaScript来展示数据和实现交互功能。同时,Service层调用Mapper来访问和操作数据库。
相关问题
mapper Service servlet html 的代码demo
下面是一个简单的代码示例,演示了这些组件之间的关系:
1. Mapper示例:
```java
public interface UserMapper {
User findUserById(int id);
void insertUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
```
2. Service示例:
```java
public interface UserService {
User getUserById(int id);
void addUser(User user);
void updateUser(User user);
void deleteUser(int id);
}
```
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(int id) {
return userMapper.findUserById(id);
}
@Override
public void addUser(User user) {
userMapper.insertUser(user);
}
@Override
public void updateUser(User user) {
userMapper.updateUser(user);
}
@Override
public void deleteUser(int id) {
userMapper.deleteUser(id);
}
}
```
3. Servlet示例:
```java
@WebServlet("/user/*")
public class UserServlet extends HttpServlet {
@Autowired
private UserService userService;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求参数
int userId = Integer.parseInt(request.getParameter("id"));
// 调用Service层方法
User user = userService.getUserById(userId);
// 将结果转换为JSON格式并返回给客户端
response.setContentType("application/json;charset=utf-8");
response.getWriter().write(JSON.toJSONString(user));
}
}
```
4. HTML示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>User Info</title>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<h1>User Info</h1>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
<tbody id="userList">
</tbody>
</table>
<script>
$(document).ready(function(){
// 发送Ajax请求获取用户信息
$.ajax({
url: "/user?id=1",
type: "GET",
dataType: "json",
success: function(data){
// 将结果展示到HTML页面上
var tr = $("<tr></tr>");
tr.append("<td>" + data.id + "</td>");
tr.append("<td>" + data.name + "</td>");
tr.append("<td>" + data.age + "</td>");
tr.append("<td>" + data.gender + "</td>");
$("#userList").append(tr);
},
error: function(){
alert("获取用户信息失败");
}
});
});
</script>
</body>
</html>
```
以上示例仅供参考,实际开发中可能需要根据具体需求进行修改。
package org.example.web; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.example.mapper.customerMapper; import org.example.pojo.customerPojo; import org.example.service.customerService; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; @WebServlet("/loginServlet") public class loginServlet extends HttpServlet { private customerService service = new customerService(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.接受用户名的密码 String c_username = request.getParameter("c_username"); String c_password = request.getParameter("c_password"); customerPojo customer = service.login(c_username, c_password); //避免出现乱码,设置字符输入流的编码,设置的字符集要和页面保持一致 response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); //7.判断user释放为null if (customer != null){ HttpSession session = request.getSession(); session.setAttribute("customer",customer); session.setAttribute("c_username",c_username); String contextPath = request.getContextPath(); response.sendRedirect("/花店.html"); }else { //登陆失败 writer.write("<script>window.alert('用户名或者密码错误')</script>"); writer.write("<script>window.location.href='login.jsp'</script>"); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //在dopost()里面调用doget()方法 //不管发过来是什么请求,最后都转向do() this.doGet(request, response); } }
这是一个使用 MyBatis 框架开发的 Java Web 应用程序的登录 Servlet,它通过接收前端传来的用户名和密码,调用 customerService 的 login 方法进行用户验证,如果验证成功,则将用户信息存入 HttpSession,跳转到花店页面;如果验证失败,则弹出一个提示框,重定向到登录页面。其中,使用了注解 @WebServlet("/loginServlet") 标记为 Servlet,并且使用了 try-with-resources 语句来确保 InputStream 和 PrintWriter 能够正确关闭。
阅读全文