前言:开发了几个月的AS3项目,感觉JAVA都用不太熟练了。刚好这几个抽的空,就把自己以前用过的Spring框架再搭一边,

并完整的记录下来

开发环境:tomcat + mysql+ java

1.所需要的jai包:spring3.0的基础包 +  连接mysql数据库的驱动包
2.创建项目InSqlTest:在web.xml下面配置
 web.xml
    <?xml version="1.0" encoding= "UTF-8"?>
  <web-app version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >
  <display-name ></display-name>     
 
 <!--配置spring的拦截器-->
  <servlet >             
    <servlet-name >dispatcher</ servlet-name>
         < servlet-class>
                              org.springframework.web.servlet.DispatcherServlet 
                         </servlet-class>
                         <!--项目启动后,直接加载配置文件,如果没有该配置,项目会自动加载WEB-INF下的dispatcher-servlet.xml文件-->
                 <init-param >
                 <param-name> contextConfigLocation</param-name >
                 <param-value> /WEB-INF/servletMvc.xml</param-value >
                   </init-param >
                   </ load-on-startup>
  </servlet >
 
 <!--拦截器拦截的URL,此处拦截所有后缀带.sql的请求-->
  <servlet-mapping >
    <servlet-name >dispatcher</ servlet-name>
     <url-pattern >*.sql</url-pattern >
  </servlet-mapping >
 
<!--一般来说,spring的项目需要两个配置文件,一个是server.xml,配置Controller,及对URL返回的一些处理
  另一个是applicationContext.xml,配置一些DAO的信息 此处暂简化,只用一个servletMvc.xml
-->
  <!-- <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param> 
  <listener > 
        <listener-class>                                       org.springframework.web.context.ContextLoaderListener
                         </listener-class>  
  </listener >-->
 
  <welcome-file-list >
    <welcome-file >index.jsp</ welcome-file>
  </welcome-file-list >
</web-app>
 
3.项目下的servletMvc.xml文件配置
 
     此文件位于/WEB-INF/下
  
  <?xml version="1.0" encoding= "UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
        <!-- ①:自动搜索@Controller、@Service以及@Repository和@Component 标注的类,对com包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
        <context:component-scan base-package="com" />
 
        <!-- ②:启动Spring MVC的注解功能,完成请求和注解映射 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
      
        <!-- ③:对模型视图名称的解析,即在模型视图名称添加前后缀 如
                   项目中返回了一个my的字符串,实际路径为“/WEB-INF/jsp/my.jsp”-->
        <bean id= "viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolv">
                <property name="prefix" value="/WEB-INF/jsp/" />
                <property name="suffix" value=".jsp" ></property>
        </bean>
       
                    <!-- JDBC模板,往里面注入了数据源dataSource-->
        <bean id= "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
              <property name="dataSource" >
                  <ref bean="dataSource" />
              </property>
          </bean>
       
                    <!-- 数据源配置,此处连接mysql数据库-->
        <bean id= "dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
              <property name="driverClassName" >
                  <value> com.mysql.jdbc.Driver</value >
              </property>
              <property name="url" >
                  <value> jdbc:mysql://127.0.0.1:3306/nero </value>
              </property>
              <property name="username" >
                  <value> root</value >
              </property>
              <property name="password" >
                  </value >
              </property>
          </bean>    
</beans>
 
4.下面是简单的java代码
 
SqlTest.java  
 
package com;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
 
/**
 * 关于@RequestMapping拦截请求,和取参的方法有很多中
 * 下面只简单介绍其中比较通用的两种
 * 想要了解更多的信息,可以参考该博客 http://my.oschina.net/guhai2004/blog/170133
 *
 * PS:方法中的 sql写法是不安全的,我是为了测试 注入式SQL才故意这样写的
 */
//自动加载这个Controller
@Controller
public class SqlTest {
 
     @Autowired  //参数的自动装载
     public JdbcTemplate jdbc;
    
     /**从post请求中解析参数,该方法拦截test.sql请求,
         以RequestParam从请求中获取参数*/
     @RequestMapping(value= "/test.sql",method = RequestMethod.POST )
     public String TestPost(@RequestParam("username" ) String username,@RequestParam("password" ) String password){
         
          String sql = "SELECT COUNT(1) FROM MYUSER WHERE USER = '"+username+"' AND PWD = '"+password+"'" ;
          //Spring的JDBC中包含了很多针对数据库的操作
          int i = jdbc .queryForInt(sql);
          if(i>0){
              
               System. out.println("success" );
               return "MyJsp" ;
          }
          return "error" ;
     }
    
    
     /**下面介绍一种直接从请求URL中解析参数的方法,
      * 可以让自己的请求URL变的很友好,当然这个比较适合页面间的跳转
      */
     @RequestMapping(value="/{username}/{password}/test.sql" ,method = RequestMethod.GET)
     public String testRest( @PathVariable String username,@PathVariable String password){
   
    String sql = "SELECT COUNT(1) FROM MYUSER WHERE USER = '"+username+"' AND PWD = '"+password+ "'" ;
    //Spring的JDBC中包含了很多针对数据库的操作
    int i = jdbc.queryForInt(sql);
         if(i>0){
             
              System. out.println("success" );
              return "MyJsp" ;
         }
         return "error" ;
     }    
}

关于springMVC3.0基于注解方式的项目搭建的更多相关文章

  1. Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)

    Elasticsearch生成mapping的方式上有多种方式,我们可以把mapping做成配置文件,也可以用spring-data-elasticsearch基于注解生成. 在基于注解生成这种方式上 ...

  2. Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存

    一  基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 -->    <bean cl ...

  3. SpringMVC入门(基于注解方式实现)

    ---------------------siwuxie095                             SpringMVC 入门(基于注解方式实现)         SpringMVC ...

  4. Spring声明式事务管理(基于注解方式实现)

    ----------------------siwuxie095                                 Spring 声明式事务管理(基于注解方式实现)         以转 ...

  5. Spring boot 基于注解方式配置datasource

    Spring boot 基于注解方式配置datasource 编辑 ​ Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionF ...

  6. 从零搭建基于webpack的Electron-Vue3项目(1)——基于webpack的Vue3项目搭建

    从零搭建基于webpack的Electron-Vue3项目(1)--基于webpack的Vue3项目搭建 前言 本篇文章内容,主要是基于webpack的Vue3项目开发环境进行搭建,暂时还不涉及到El ...

  7. Spring Boot2.0之注解方式启动Springmvc

    回顾下springmvc原理图: DispatcherServlet是Spring MVC的核心,每当应用接受一个HTTP请求,由DispatcherServlet负责将请求分发给应用的其他组件. 在 ...

  8. 缓存初解(三)---Spring3.0基于注解的缓存配置+Ehcache和OScache

    本文将构建一个普通工程来说明spring注解缓存的使用方式,关于如何在web应用中使用注解缓存,请参见: Spring基于注解的缓存配置--web应用实例 一.简介 在spring的modules包中 ...

  9. 02基于注解开发SpringMVC项目(jar包,异步,request,参数传递,多选的接收,Model传参,map传参,model传参,ajax,重定向,时间日期转换)

     1 所需jar包 项目结构如下: 2 web.xml配置文件的内容如下: <?xmlversion="1.0"encoding="UTF-8"?&g ...

随机推荐

  1. [转]NandFlash和NorFlash的区别

    一. NAND和NOR的比较 NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM 和EEPROM一统天下的局面.紧 ...

  2. OpenLayers图形与列表互动

    项目上遇到这样一种需求:查询数据库后得到结果(带地理位置的)列表,每个结果在地图上都是一个四边形,四边形之间有交叉,有重叠,需要实现地图上的四边形和结果列表的互动.抛开其他逻辑功能,互动需求可以表示为 ...

  3. asp.net开发中遇到的奇葩bug及解决办法(会持续更新。。。)

    1,不知道你们遇没遇到过,在vs2010或更高版本上运行程序的时候,完全没问题,放在IIS中出现了问题,就比如左侧是菜单项,点击菜单右边显示,如果菜单链接是这样:content.aspx,而另一个链接 ...

  4. Redis教程(二):String数据类型

    一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...

  5. SQLiteDatabase 基本操作

    一.SQLiteOpenHelper类 android 提供类SQLiteOpenHelper帮助用户简化对SQLite数据库的操作.该类是一个抽象类,必须用户自己实现并重写oncreate()和on ...

  6. PageObject小结

    写之前想把这次的灵感记录下来: 之前看PO模式几次,始终不得法,感觉一片混乱,可就在一天早上,正在照着别人的代码写自己项目时突然脑海中想通了几个问题:1.为什么要封装页面.2.各个模块的作用以及为什么 ...

  7. 移动APP的开发迭代离不开测试,你搞清楚其中的关键点了吗?

    App测试的一个要求是一个beta测试环境.为此,操作系统制造商要么提供他们自己的测试环境,比如:Testflight (iOS),要么可以使用任一商用工具,如:HockeyApp (Android) ...

  8. js判断中文

    var reg = /^[\u4E00-\u9FA5]+$/;if(!reg.test(keywordscn)){ alert('请填写中文') return false;}

  9. openssl pem 生成公钥和私钥及文件

    openssl pem.h 中提供了关于pem格式密钥对的操作接口 通常使用.pem的格式文件来保存openssl 生成的密钥对: 在终端下 cat xxx.pem 可以看到 p.p1 { margi ...

  10. HashSet和HashMap的区别

    HashSet和HashMap的区别.Java的HashSet类是由哈希表支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用 null 元素.HashSet类为基本操作提供 ...