zoukankan      html  css  js  c++  java
  • 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;
        }
    }
     
     
     
     
     
  • 相关阅读:
    SQL补充
    SQL练习题
    HDU 2907
    Codeforces 814D
    Codeforces 814C
    Codeforces 1004D
    Codeforces 1004E
    CodeForces 909F
    CodeForces 909E
    CodeForces 909D
  • 原文地址:https://www.cnblogs.com/zhangguangxu98/p/9585379.html
Copyright © 2011-2022 走看看