1、首先准备好SpringMVC使用的包
2、准备好数据库连接的包
3、准备好excel文件导入导出的包
4、准备好生成图表的包
5、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>springmvc</display-name>
<!-- 统一编码 -->
<filter>
<filter-name>charsetEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<description>登陆验证拦截</description>
<filter-name>loginCheckFilter</filter-name>
<filter-class>com.springmvc.controller.LoginCheckFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginCheckFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginCheckFilter</filter-name>
<url-pattern>/adminshowallmylog.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>loginCheckFilter</filter-name>
<url-pattern>/adminshowallmyplan.do</url-pattern>
</filter-mapping>
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载/WEB-INF/[servlet-name]-servlet.xml
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- jfreechart报表配置 -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/chart</url-pattern>
</servlet-mapping>
<!-- 加载log4j配置文件 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<!--log4jRefreshInterval为100000表示 开一条watchdog线程每10秒扫描一下配置文件的变化; -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>100000</param-value>
</context-param>
<!-- 1. 动态的改变记录级别和策略,不需要重启Web应用; 2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>/userlogin/userlogin.jsp</welcome-file>
</welcome-file-list>
</web-app>
6、配置springmvc-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
<!-- 扫描路径 -->
<context:component-scan base-package="com.springmvc" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- <mvc:default-servlet-handler/> -->
<!-- <context:component-scan base-package="com.springmvc.service" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<context:component-scan base-package="com.springmvc.dao" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan> -->
<!-- 配置根视图 -->
<!-- <mvc:view-controller path="/" view-name="userlogin"/> -->
<!-- 激活基于注解的配置 @RequestMapping, @Controller, @Service, @Repository, @Resource-->
<mvc:annotation-driven />
<!-- 静态资源配置 -->
<mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
<!-- 视图层配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- 上传文件解析器配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 上传文件的大小限制 ,单位是字节-->
<property name="maxUploadSize" value="5242880000000"></property>
<!-- 上传文件的临时路径,上传完成后会自动删除 -->
<property name="uploadTempDir" value="upload/temp"></property>
</bean>
<!-- 加入需要执行的类 -->
<bean id="timingSchedule" class="com.springmvc.controller.TimingSchedule"/>
<!-- 加入定时执行的方法 -->
<bean id="timingScheduleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 定时执行的类 -->
<property name="targetObject" ref="timingSchedule"/>
<!-- 具体的方法 -->
<property name="targetMethod" value="execute"/>
</bean>
<!-- 调度触发器,设置自己想要的时间规则 -->
<bean id="timingScheduleTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- 加入相关的执行类和方法 -->
<property name="jobDetail" ref="timingScheduleJobDetail"/>
<!-- 设置时间规则 (为了方便测试,设置成一分钟一次。具体的规则见详情)-->
<!-- <property name="cronExpression" value="00 * * * * ?"/> -->
<property name="cronExpression" value="0 30 15 * * ?"/>
</bean>
<!-- 加入调度工厂 ,设置调度触发器即可-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="timingScheduleTrigger"/>
</list>
</property>
</bean>
</beans>
7、编写一个LoginController
package com.springmvc.controller;
import java.util.ArrayList;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import com.springmvc.pojo.UserPojo;
import com.springmvc.service.UserLoginService;
@Controller("UserLoginController")
public class UserLoginController{
private static final Logger logger=Logger.getLogger(UserLoginController.class);
@Resource(name="userLoginService")
private UserLoginService userLoginService;
//login
@RequestMapping(value="/userlogin.do", method={RequestMethod.POST,RequestMethod.GET})
public ModelAndView userLogin(HttpServletRequest request,HttpServletResponse response){
logger.info("登录成功:");
String name = request.getParameter("name");
String password = request.getParameter("password");
String paras[]={name,password};
String error="没有该账户或者密码错误";
String markerror="没有该角色";
ArrayList<UserPojo> al=userLoginService.logIn(paras);
if(al.size()==0){
/* return "userlogin";*/
return new ModelAndView("userlogin","error",error);
}
request.getSession().setAttribute("name", password);
UserPojo userPojo=al.get(0);
if((userPojo.getMark()).equals("admin")){
/* return "/adminhome/adminhome";*/
return new ModelAndView("/adminhome/adminhome");
}else if((userPojo.getMark()).equals("other")){
/* return "othershome";*/
return new ModelAndView("/otherhome/otherhome");
}else{
/* return "userlogin";*/
return new ModelAndView("userlogin","error",markerror);
}
}
}
8、编写一个LoginService
package com.springmvc.service;
import java.util.ArrayList;
import com.springmvc.pojo.UserPojo;
public interface UserLoginService {
//login
public ArrayList<UserPojo> logIn(String[] paras);
}
9、编写一个LoginServiceImpl
package com.springmvc.service.impl;
import java.util.ArrayList;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.springmvc.dao.UserLoginDao;
import com.springmvc.pojo.UserPojo;
import com.springmvc.service.UserLoginService;
@Service("userLoginService")
public class UserLoginServiceImpl implements UserLoginService {
@Resource(name="userLoginDao")
private UserLoginDao userLoginDao;
public ArrayList<UserPojo> logIn(String[] paras){
String sql="select * from user where name=? and password=?";
return userLoginDao.logIn(paras,sql);
}
}
10、编写一个LoginDao
package com.springmvc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import org.springframework.stereotype.Repository;
import com.springmvc.db.BasicDB;
import com.springmvc.pojo.UserPojo;
@Repository("userLoginDao")
public class UserLoginDao{
//login
public ArrayList<UserPojo> logIn(String[] paras,String sql) {
BasicDB.openDB();
Connection cn=BasicDB.cn;
PreparedStatement ps=BasicDB.ps;
ResultSet rs=BasicDB.rs;
ArrayList<UserPojo> al=new ArrayList<UserPojo>();
try{
ps=cn.prepareStatement(sql);
for(int i=0;i<paras.length;i++){
ps.setString(i+1, paras[i]);
}
rs=ps.executeQuery();
while(rs.next()){
UserPojo userbean=new UserPojo();
userbean.setName(rs.getString(1));
userbean.setPassword(rs.getString(2));
userbean.setEmail(rs.getString(3));
userbean.setMark(rs.getString(4));
userbean.setPhone(rs.getString(5));
al.add(userbean);
}
}catch(Exception e){
e.printStackTrace();
}finally{
BasicDB.closeDB();
}
return al;
}
}