第一步 :

导入外部jar包,放在如图目录下

第二步:简单配置web.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>springmvc01</display-name> <!-- 配置Spring mvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 如何不配置初始化参数,会默认加载WEB-INF/前端控制器名-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- classpath代表应用程序根路径 -->
<param-value>classpath:app-mvc.xml</param-value>
</init-param>
<!-- 设置该servlet为web容器启动时立即加载 -->
<!-- 值正数时,正数值越小,优先级越高,为负数web容器启动时,默认不会立即初始化springmvc-->
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> </web-app>

第三步:配置 spring  xml配置文件

<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- 扫描控制器所在的包 -->
<context:component-scan base-package="com.zhidi.controller"/> <!-- 开启springmvc注解 -->
<mvc:annotation-driven/> <!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置返回视图的前缀 -->
<property name="prefix" value="/WEB-INF/page/"/>
<!-- 配置返回视图的后缀 -->
<property name="suffix" value=".jsp"/>
</bean> </beans>

第四步:servlet 服务层多个servlet服务器  现在可以简写到controller类中

浏览器进入网页会先进过控制层

package com.zhidi.controller;

import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; //会将该类交给Spring IOC容器管理
@Controller
public class HelloController { //URI
@RequestMapping("/helloworld")
public String hello() {
// /WEB-INF/page/success.jsp
return "success";
} @RequestMapping("/test")
public String test() {
return "success";
}
}

配置文件会根据方法返回字符窜自动拼接  如  success  会  进入  success.jsp  网页

表单传输数据简单操作:

建立实体类    属性名和表单  input name 名一样如下

package com.zhidi.entity;

import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

public class Student {

    private Integer id;
private String stuName;
private Integer age;
private String sex;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday; public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
} @Override
public String toString() {
return "Student [id=" + id + ", stuName=" + stuName + ", age=" + age + ", sex=" + sex + ", birthday=" + birthday
+ "]";
} } jsp 页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="user/edit.do" method="post">
学生编号:<input type="text" name="id"><br>
学生姓名:<input type="text" name="stuName"><br>
年龄:<input type="text" name="age"><br>
性别:<input type="radio" value="0" name="sex">男
<input type="radio" value="1" name="sex">女<br>
生日:<input type="date" name="birthday"><br>
<input type="submit" value="提交">
</form>
</body>
</html>

controller类

package com.zhidi.controller;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import com.zhidi.entity.Student; @Controller
@RequestMapping("/user")
public class UserController { //在RequestMapping中设置属性值,可以匹配更精确的url
@RequestMapping(value="/add", method=RequestMethod.GET, params="username")
public String add(String username) {
System.out.println(username);
return "user_add";
} //向方法中添加默认类型的参数,HttpServletRequest,HttpServletResponse
@RequestMapping("/defaultParam1")
public String defaultParam(HttpServletRequest request, HttpServletResponse response) {
String userName = request.getParameter("username");
request.setAttribute("userName", userName);
HttpSession session = request.getSession();
return "user_add";
} @RequestMapping("/defaultParam2")
public String defaultParam(HttpSession session) {
session.setAttribute("userName", "小明");
return "user_add";
} @RequestMapping("/defaultParam3")
public String defaultParam(Model modelMap) {
//ModelMap是Model接口的实现类
//相当于向请求范围中设置了一个参数
modelMap.addAttribute("userName", "赵日天");
return "user_add";
} //如果请求中的参数名和方法形参中的参数名不一致,可以通过@RequestParam注解将指定名称的参数绑定到对象的形参上
//@RequestParam的required默认为true,必须传该参数,否则会出现400,可以将其设置为false,就代表请求参数列表中可以没有改参数,使用defaultValue可以为其添加默认值
@RequestMapping("/simpleParam1")
public String simpleParam(@RequestParam(value = "name", required = false, defaultValue = "赵特助") String username, Integer id) {
System.out.println(username);
System.out.println(id);
return "user_add";
} /**
* 跳转到user_edit页面
* @return
*/
@RequestMapping("/toEdit")
public String toEdit() {
return "user_edit";
} /**
* 处理表单提交
* 属性的自动装箱,会将表单提交的属性值设置到方法中的形参上
* @param stu
* @return
*/
@RequestMapping("/edit")
public String edit(Student stu) {
System.out.println(stu);
return "user_edit";
} /**
* springmvc中不能直接映射时间类型,需要通过其他方式去对时间进行转换,@DateTimeFormat注解,使用该注解时需要开启<mvc:annotation-driver/>
* @param date
* @return
*/
@RequestMapping("/testDate")
public String testdDate(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
System.out.println(date);
return "user_edit";
}
}

springmvc 简化Javaweb 简单应用的更多相关文章

  1. javaWEB简单商城项目

    javaWEB简单商城项目(一) 项目中使用到了上一篇博文的分页框架,还有mybatis,重点是学习mybatis.现在有些小迷茫,不知道该干啥,唉,不想那么多了,学就对了 一.项目功能结构 1.功能 ...

  2. springmvc(4)注解简单了解

    对于我这样的新人来说,因为是刚开始做项目,所以以前的技术不是用的很多,就比如springmvc来说,实际上使用的都是注解形式的,对于那些全部都是配置的来说,虽然也了解一些,但是实际上还是没试用过的. ...

  3. javaweb简单登陆例子

    JSP+Servlet+JavaBean简单程序例子——用户名密码登陆,摘自<Tomcat&JavaWeb 技术手册>,亲测可用. IDE环境:MyEclipse10 1.建立We ...

  4. SpringMvc和servlet简单对比介绍

    原文链接:http://www.cnblogs.com/haolnu/p/7294533.html 一.servlet实现登录. 咱们先来看一下servlet实现注册登录. <servlet&g ...

  5. SpringMVC之一个简单的例子

    一.一个简单的例子 二.web.xml文件配置 三.spring-mvc.xml文件(等同于struts2的struts文件) 四.login.jsp(登录页面) 五.登录成功的页面(success. ...

  6. [转]SpringMVC+Hibernate+Spring 简单的一个整合实例

    原文地址:http://langgufu.iteye.com/blog/2088355 下面开始实例,这个实例的需求是对用户信息进行增删改查.首先创建一个web项目test_ssh,目录结构及需要的J ...

  7. springMVC 拦截器简单配置

    在spring 3.0甚础上,起来越多的用到了注解,从前的拦截器在配置文件中需要这样配置 <beans...> ... <bean id="measurementInter ...

  8. SpringMVC基础——一个简单的例子

    一.导入 jar 包 二.配置 web.xml 文件 <servlet> <servlet-name>dispatcherServlet</servlet-name> ...

  9. 【dynamic】简化反射简单尝试

    最近在自己瞎整设计自己的数据访问层(纯属深入了解C#用),遇到了反射.网传反射性能很差,可是我们项目中也有功能用到了反射,总体来说还不错(小项目).由于居安思危的感觉越发沉重,不得不去打破传统,去寻求 ...

随机推荐

  1. linux scull 的内存使用

    在介绍读写操作前, 我们最好看看如何以及为什么 scull 进行内存分配. "如何"是需要全 面理解代码, "为什么"演示了驱动编写者需要做的选择, 尽管 sc ...

  2. P1067 叠罗汉

    题目描述 茜茜和聪聪是关系很好的同桌,有一天,茜茜觉得天空中的白云像棉花糖一样,应该很好吃吧,但是够不着,她很烦恼. 聪聪为了帮助茜茜解决烦恼,决定帮他把天空中的白云摘下来做成棉花糖给她吃. 但是聪聪 ...

  3. linux进程延迟

    #include <linux/wait.h> long wait_event_interruptible_timeout(wait_queue_head_t *q, condition, ...

  4. linux llseek 实现

    llseek 方法实现了 lseek 和 llseek 系统调用. 我们已经说了如果 llseek 方法从设备 的操作中缺失, 内核中的缺省的实现进行移位通过修改 filp->f_pos, 这是 ...

  5. vue-learning:2 - template - directive

    指令 directive 在上一节我们知道,VUE的template模板通过VUE指令API实现与页面的视图层联系.所以本节将聚集在实现视图层交互的VUE指令系统directive的基础使用. 我们先 ...

  6. MFC 封装类为静态链接库

    mfc自带的基本控件都不怎么美观,所以一般开发者都会自定义类对控件进行重绘.手里也积累了不少控件的重绘,对对话框.静态文本.列表框等. 但是每次都要把这些类重新导入到新的工程里,比较麻烦,而且我也不想 ...

  7. JavaScript递归注意事项

    var svg_node = document.getElementById("svgnode") function parents(posnode,selector) { var ...

  8. Zabbix监控web

    1.1 创建主机 1.2 应用集 1.3 创建web场景 1.4 创建触发器

  9. 【题解】P4137 Rmq Problem(莫队)

    [题解]P4137 Rmq Problem(莫队) 其实这道题根本就不用离散化! 因为显然有\(mex\)值是\(\le 2\times 10^5\)的,所以对于大于\(2\times 10^5\)的 ...

  10. FRPC 双向socket通讯 转发请求类轮子

    一直在找一个能双向通讯的C#库 学识浅薄没有找到 于是封装一个预计BUG奇多的轮子 他是基于SuperSocket开发的 这样的 它跟传统的 架构不一样 它的最小架构 或者 客户端即是服务端 比如一个 ...