创建项目
1.创建文件夹 my-shop,用idea打开
2.创建pom.xml(添加依赖Junit spring sevlet log4j),用idea托管
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-shop</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.17.RELEASE</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
</project>
idea托管
3.完善maven目录结构
目录结构
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>my-shop</display-name>
</web-app>
4.完善架构目录(三层架构+MVC)
5.配置spring 与 log4j
在src/main/resources下创建spring-context.xml log4j.properties
spring-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
log4j.properties
#根日志,配置了日志级别为INFO,预定义了console,file两种附加器
log4j.rootLogger=INFO, console, file
#console附加器,日志输出在控制台,采用匹配器布局模式,日志输出格式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p [%c] - %m%n
#file附加器,每天产生一个日志文件,输出在logs/log.log,采用匹配器布局模式,日志文件最大值,最多纪录文件数,日志格式
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=logs/log.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.file.layout.ConversionPattern=%d %p [%c] - %m%n
6.创建index.jsp
7.配置jdk与tomcat
8.运行项目
Bootstrap后台管理模板
下载AdminLTE https://github.com/ColorlibHQ/AdminLTE
把需要的东西放到我们的项目的assets中去(css img js 是在list文件夹中)
注:我把brower_components复制进来之后API.md页面标红,修改这个就好了
登录界面
index.jsp 把登录界面一点一点复制过来(先熟悉一下,修改相应地方)
登录后台实现
写实体类User
package com.example.my.shop.entity;
public class User {
private String email;
private String password;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"email='" + email + '\'' +
", password='" + password + '\'' +
'}';
}
}
写UserDao
package com.example.my.shop.dao;
import com.example.my.shop.entity.User;
public interface UserDao {
public User getUser(String email, String password);
}
写UserDaoImpl(没有连接数据库)
package com.example.my.shop.dao.impl;
import com.example.my.shop.dao.UserDao;
import com.example.my.shop.entity.User;
public class UserDaoImpl implements UserDao {
public User getUser(String email, String password) {
User user=null;
if("[email protected]".equals(email)){
if("admin".equals(password))
user=new User();
user.setEmail(email);
user.setPassword(password);
}
return user;
}
}
写UserService
package com.example.my.shop.service;
import com.example.my.shop.entity.User;
public interface UserService {
public User login(String email,String password);
}
写UserServiceImpl(注入service)spring的配置获取不到bean,没找到原因,奇了怪
package com.example.my.shop.service.impl;
import com.example.my.shop.commons.context.SpringContext;
import com.example.my.shop.dao.UserDao;
import com.example.my.shop.dao.impl.UserDaoImpl;
import com.example.my.shop.entity.User;
import com.example.my.shop.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserServiceImpl implements UserService {
/* SpringContext context=new SpringContext();
UserDao userDao=(UserDao) context.getBean("userDao");*/
// ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
// UserDao userDao=(UserDao) context.getBean("userDao");
UserDao userDao=new UserDaoImpl();
public User login(String email, String password) {
return userDao.getUser(email,password);
}
}
spring-context.xml定义bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userDao" class="com.example.my.shop.dao.impl.UserDaoImpl" />
<bean id="userService" class="com.example.my.shop.service.impl.UserServiceImpl"/>
</beans>
写LoginController(其实是sevlet) spring的配置获取不到bean,没找到原因,奇了怪
package com.example.my.shop.Controller;
import com.example.my.shop.commons.context.SpringContext;
import com.example.my.shop.entity.User;
import com.example.my.shop.service.UserService;
import com.example.my.shop.service.impl.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
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 java.io.IOException;
@WebServlet(name = "LoginController", urlPatterns = "/login")
public class LoginController extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resq) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest req, HttpServletResponse resq) throws ServletException, IOException{
// ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
/* SpringContext context=new SpringContext();
UserService userService=(UserService) context.getBean("userService");*/
UserService userService=new UserServiceImpl();
String email=req.getParameter("email");
String password = req.getParameter("password");
User user=userService.login(email,password);
//登录失败的处理
if(user==null){
req.setAttribute("message","用户名或密码错误");
req.getRequestDispatcher("/index.jsp").forward(req,resq);
}
//登录成功的处理
else{
resq.sendRedirect("/main.jsp");
}
}
}
就可以运行了,但是存在一个问题就是获取不到bean,找不到原因,现在是new的对象
接下来spring配置完web之后可以获取bean,奇怪