原生ssm搭建环境所需要的配置文件
(mapper的xml文件也可以放在这里)
web.xml文件是什么?有什么用?
一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet,session等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。
1、WEB工程加载web.xml过程
经过个人测试,WEB工程加载顺序与元素节点在文件中的配置顺序无关。即不会因为 filter 写在 listener 的前面而会先加载filter。WEB容器的加载顺序是:
ServletContext -> context-param -> listener ->filter -> servlet。并且这些元素可以配置在文件中的任意位置。加载过程顺序如下:
启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。
紧接着,创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 容器将
转换为键值对,并交给servletContext。 容器创建中的类实例,创建监听器
- 关于原生ssm框架的搭建,如果有时间的话再做
跳转登录页面
首先在Controller层
@Controller//需要注解声明Controller层
@RequestMapping("/admin/user")//窄化路径
public class UserController {
//自动注入UserService
@Autowired
private UserService us;
@RequestMapping("/login.action")
public String login(){
//WEB-INF/view/index.jsp 等同于内部转发
return "index";
}
//validateLogin实现登录,跳转到项目主页
@RequestMapping(value = "/login.action",method = RequestMethod.POST)
public String validateLogin(Model model,HttpSession session, String username,String password) {
/*
ModelandView视图模型
实现登录校验
判断页面中输入的用户名和密码在数据库中是否存在
需要controller层和service层进行连接
*/
User user = us.Validate(username, password);
if (user!=null) {
session.setAttribute("login_user", user);
return "admin";
}else {
model.addAttribute("errorMessage","用户名或者密码错误");
return"index";
}
}
}
service层
@Service//需要注解声明ervice层
public class UserServiceImpl implements UserService {
//调用UserMapper.login方法验证
@Autowired
private UserMapper um;
@Override
public User validate(String username, String password) {
User user = um.login(username, password);
if (user != null) {
return user;
}
return null;
}
}
Mapper接口层
public interface UserMapper {
//注意返回的类型是User @parm强制转换类型
User login(@Param("u_name")String u_name,@Param("u_pwd")String u_pwd);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="crm.mapper.UserMapper">
<!-- 登录映射 mapper.xml中主要编写SQL语句 -->
<select id="login" parameterType="String"
resultType="crm.pojo.User">
select*from t_user where
u_name = #{u_name} and u_pwd = #{u_pwd}
</select>
</mapper>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录--杭歌客户关系管理系统</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/Index.css">
</head>
<body>
<div class="login">
<!-- 图片标签 alt 图片信息 src 路径 -->
<img alt="杭歌" src="${pageContext.request.contextPath}/image/logo.png">
<!-- 段落标签 -->
<p>杭歌客户关系管理系统</p>
<!-- form表单标签 目的将来往服务器提交数据 -->
<form action="${pageContext.request.contextPath }/admin/user/login.action"
method="post">
<!-- 标签的嵌套 -->
<div>
<!-- input 输入框标签 -->
<input type="text" id="username" name="username"
placeholder="请输入用户名">
</div>
<!-- 属性写到标签的内部 行内样式 STYLE-->
<div>
<input type="password" id="password" name="password"
placeholder="请输入密码">
</div>
<p class="message">${errorMessage}</p>
<div>
<input type="submit" value="登录" />
</div>
</form>
</div>
</body>
</html>