1.Spring Web MVC

  a.定义:是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

  b.配置web.xml:

    <servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/springmvc-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.spring</url-pattern>
</servlet-mapping>

  c.配置springmvc-servlet.xml

    <!-- 启动注解驱动 -->
<mvc:annotation-driven/>
<!--启用自动扫描 -->
<context:component-scan
base-package="com.wode.controller" /> <!-- ViewResolver视图解析器 用于将返回的ModelAndView对象进行分离 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean> <!-- jackson -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>

  d.使用:

    ①方法一

@RequestMapping(path="login")
//login 与 页面跳转页面 login.spring相对应
public String regist(@Request(value="name") String name,String pwd){ //这里,我们的参数和表单提交保持一致
System.out.println(name+" "+pwd);
return "main";
}

    注:参数列表还能传 HttpServletRequest、HttpServletResponse、UserBean、Map<String,Object>(请求转发传参)、PrintWriter

    ②方法二

@Controller
@RequestMapping("user.do") //我们在最前边写上了user.do用户的所有要使用的方法都在这个位置
public class UserController {
@RequestMapping(params="method=login")//通过参数确定我们到底使用的这个类中的哪一个方法
public String login(){
System.out.println("用户的登录了");
return null;
}
@RequestMapping(params="method=regist")
public String regist(){
System.out.println("用户注册了");
return null;
}
}

      表单中:

<form action="user.do" method="get" >
  <input type="hidden" name="method" value="regist"><!--这里通过一个隐藏表单域来控制我们到底提交了哪个方法-->
  name:<input type="text" name="username"><br />
  pwd:<input type="password" name="password"><br />
  <input type="submit">
</form>

  e.请求转发 与 重定向

  @RequestMapping("regist.do")
public String regist(UserBean bean,Map<String,Object> map){
System.out.println(bean.getUsername()+" "+bean.getPassword());
if(bean.getUsername().equals("zhangsan")){
//请求转发
map.put("userName",bean.getUserName);
return "forward:main.jsp";
}else{
//重定向
return "redirect:main.jsp";
}
}

  f.json的使用

@Controller
public class TestAction {
@RequestMapping("test.do")
public @ResponseBody List<UserBean> test1(String uname) throws Exception{ //这个东西是核心
List<UserBean> list = new ArrayList<UserBean>();
UserBean user=new UserBean();
user.setUsername("张三");
user.setPassword("admin");
UserBean user2=new UserBean();
user2.setUsername("lisi");
user2.setPassword("admin");
list.add(user);
list.add(user2);
return list;
}
}

    @ResponseBody自动帮你做转换

JavaEE 之 Spring(三)的更多相关文章

  1. spring三种实例化bean的方式

    1构造函数实例化 2静态工厂方法实例化 3实例工厂方法实例化 service接口: package service; public interface PersonService { public v ...

  2. spring(三、spring中的eheche缓存、redis使用)

    spring(三.spring中的eheche缓存.redis使用) 本文主要介绍为什么要构建ehcache+redis两级缓存?以及在实战中如何实现?思考如何配置缓存策略更合适?这样的方案可能遗留什 ...

  3. 面试阿里被“吊打”,一问Spring三不知,半年后二战终拿下offer

    Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发. 近两年来,许多大厂在面 ...

  4. 面渣逆袭:Spring三十五问,四万字+五十图详解

    大家好,我是老三啊,面渣逆袭 继续,这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出S ...

  5. Spring —— 三种配置数据源的方式:spring内置、c3p0、dbcp

    01.Spring内置数据源配置Class:DriverManagerDataSource全限定名:org.springframework.jdbc.datasource.DriverManagerD ...

  6. Spring(三)Bean继续入门

    一.Aware相关接口 对于应用程序来说,应该尽量减少对Sping Api的耦合程度,然而有些时候为了运用Spring所提供的一些功能,有必要让Bean了解Spring容器对其进行管理的细节信息,如让 ...

  7. JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件

    JdbcTemplate的使用 Spring为了各种支持的持久化技术,都提供了简单操作的模版和回调. JdbcTemplate 简化 JDBC 操作HibernateTemplate 简化 Hiber ...

  8. Spring三种实例化Bean的方法

    1.实例化bean的三种方法:(1) 构造器<!-- 体验1 --><bean id="personService" class="com.persia ...

  9. spring(三)----大概是最简单的面向切面了

    面向切面编程,是spring的一大特点,可以说是spring最独特的特点了(个人认为). 记得当初学习面向切面编程的时候,可能是面向对象思想根深蒂固了,怎么也理解不了什么叫面向切面... 其实对于面向 ...

随机推荐

  1. Confluence 6 为登录失败编辑,禁用和配置验证码

    在默认的情况下,验证码将会在失败登录次数达到的时候显示. 如果为登录失败编辑,禁用和配置验证码: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration 链接. 在左侧 ...

  2. Confluence 6 反向跟踪

    当反向跟踪(Trackback )被启用后,在任何你链接到可用启用自动发现功能的外部页面中,Confluence 将会自动发送一个方向跟踪 ping,这个 ping 能通知链接的页面有了内容改变. C ...

  3. Confluence 6 索引支持的语言并进行修改

    Confluence 中索引的语言配置. 可以单击编辑后进行修改. https://www.cwiki.us/display/CONF6ZH/Configuring+Indexing+Language

  4. 表达式语言 Expression Language

    JSP 2.0最重要的特性之一就是表达式语言 (EL),JSP用户可以用它来访问应用程序数据.由于 受到ECMAScript和XPath表达式语言的启发,EL也设计 成可以轻松地编写免脚本的JSP页面 ...

  5. MySQL5.7.11版本,报错Cannot proceed because system tables used by Event Scheduler were found damaged at server start

    解决思路: 1. 在MySQL安装目录下执行./mysql_upgrade -uroot -p,此处是为了更新MySQL的系统表,在5.6之前的版本上,更新系统表的命令是mysql_fix_privi ...

  6. FFmpeg的一般流程

    FFMPeg一般流程: 1.av_register_all();//注册所有文件格式和编解码库 2.avformat_network_init();//打开网络视频流 3.av_open_input_ ...

  7. easyUI-datagrid带有工具栏和分页器的数据网格

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>数据 ...

  8. shell 按序删除文件

    一.按时间排序 cd /data/wosbak/hrs/pre/ && ls -A -t | awk '{if(NR>15){print $9}}' | xargs rm -rf ...

  9. 008-Python-模块

    1.模块 1.1什么是模块 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀: 模块分为: 内置模块(内部定义的如time,os,sys等) 第三方模块(需要安装 ...

  10. 转: 解压Assets.car (iOS加密资源)

    今天想获取APP的资源,但是查看xxx.app文件夹里面,缺少了大部分资源.在文件夹里面发现Assets.car这个文件,发现文件很大有40多M,猜想图片资源会不会被压缩到这里面了,所以就网络上查了下 ...