第一步 :

导入外部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. Intellij IDEA 如何使用Jrebel热部署

    My Jrebel 已经不再提供免费使用了,或使用破解版Jrebel 或可以移步至 HotSwapAgent,或使用破解的Jrebel. 一个java web项目,在写的过程中我们需要不断调试,如果没 ...

  2. vueX中使用namespaced

    用法: namespaced:true; getter调用时: this.$store.getters['XXX/getXXX']; commit调用时: this.$store.commit('XX ...

  3. Codeforces Round #587 C. White Sheet(思维+计算几何)

    传送门 •题意 先给一个白矩阵,再两个黑矩阵 如果两个黑矩阵能把白矩阵包含,则输出NO 否则输出YES •思路 计算几何题还是思维题呢? 想起了上初中高中做几何求面积的题 这个就类似于那样 包含的话分 ...

  4. <QluOJ2018NewCode>约数个数

    题目描述 p^q表示p的q次方,正整数M可以分解为M=(p1^a1)*(p2^a2)*(p3^a3)*……*(pn^an)的形式,其中p1,p2……pn为质数(大于1并且只能被1和自身整除的数叫做质数 ...

  5. VSCode提示没有权限,无法保存文件问题

    重装了系统之后,重新打开了VSCode发现无法保存修改的文件,激活系统后发现还是无法保存文件,都是提示权限问题,原因在于文件夹权限继承并不是我所登录的这个用户,接着我试着按照网上的方法,在文件夹后,右 ...

  6. SmartAssembly 使用方法

    SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢. 开始埋头苦干,找了半天也没找到合适 ...

  7. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  8. mac系统上访问docker容器中的ip配置

    使用 mac系统,发现docker没有 docker0网桥,无法直接在宿主机上 访问 容器的ip, 在测试的时候有这种需求,而不是通过-p的方式,可以参考下面的连接,主要就是 修改 setting.j ...

  9. CUBA 框架2019年回顾

    对于 CUBA 框架,2019年最重要的事件应该是 CUBA 7 的发布, 这是 CUBA 框架的一次巨大进化,CUBA 7 引入了一系列全新的 UI 和更灵活的数据访问机制,并且发布了基于 Inte ...

  10. 基础之Lamada和Stream的邂逅

    show me the code and take to me,做的出来更要说的明白 GitHub项目JavaHouse同步收录 喜欢就点个赞呗! 你的支持是我分享的动力! 引入 是否有遇到看不懂身边 ...