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. 表单,table的css

    table{table_layout:fixed;border-collapse: collapse;border-spacing: 0}border-collapse: collapse 边框合并在 ...

  2. liunx 安装redis 4.0

    liunx 上安装redis 4.0.1 第一步:将 redis-4.0.1.tar.gz 压缩问上传至/home目录下 第二步: 解压文件  tar -zxvf  redis-4.0.1.tar.g ...

  3. 【MySql】delete用法

    delete 语句用于删除表中的数据, 基本用法为: delete from 表名称 where 删除条件; 以下是在表 students 中的实例: 删除 id 为 3 的行: delete fro ...

  4. Confluence 6 重构 ancestor 表

    ancestor 表记录了上级和下级(子页面)页面之间的关系.这个表格同时被用来确定子页面是否具有从上级页面继承来的限制(restrictions)权限. 偶尔 ancestor 表格中的数据可能被损 ...

  5. Confluence 6 修改站点标题

    站点标题是在浏览器的标题栏中显示的.在默认的情况下,标题被显示为 Confluence. 希望修改你站点的标题: 在屏幕的右上角单击 控制台按钮 ,然后选择 General Configuration ...

  6. 第十四单元 Linux网络原理及基础设置

    ·ifconfig命令来维护网络(详见linux系统管理P422) 1) 掌握ifconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址.2) 灵活应用ifconfig命令 ...

  7. BeatifulSoup模块

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...

  8. 1873: This offer(zzuli)

    题目描述 话说WX入职已经有一个多月了,公司boss突然扔给他了一个问题,如果解决不了的话就会被开除掉 - -#,情急之下他只能来请教你了,boss给了他N个不大于100的数,现在wx需要将这N个数通 ...

  9. 《剑指offer》 二叉树的镜像

    本题来自<剑指offer>二叉树的镜像 题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 ...

  10. Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

    我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...