SpringMVC开发配置

1、首先准备好SpringMVC使用的包

2、准备好数据库连接的包

3、准备好excel文件导入导出的包

4、准备好生成图表的包

 
5、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
  <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
 
     <!-- 扫描路径 -->
    <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;
    }
}
 
 
 
 
 
原文地址:https://www.cnblogs.com/zhangguangxu98/p/9585379.html