搭建环境
1.创建java项目
2.创建web项目
3.
4.在WEB-INF下创建 lib和classes文件夹
右键
5.把路径指向当前项目下的classes
6.当前项目的lib文件夹
添加 apache-tomcat里的jar包
7.把lib文件里的jar包粘贴进项目lib中
8.创建springmvc.xml
编写web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation </param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!-- /: 拦截所有的请求但不包括.jsp请求
/*:拦截所有请求,包括.jsp
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
创建类
package com.it.controller;
import com.it.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.security.PublicKey;
@Controller
@RequestMapping("/admin")
public class MyController {
/*
@RequestMapping("/admin"):可以用在方法或者类前,
然后访问路径前都需要加上admin (admin/test)
value:可以省略
method:请求方式,在请求路径满徐时,还需要满足请求方式的要求
超链接是get
如果请求错误,则报404错误
如果是表单,则用post方式
* */
@RequestMapping(value = {"/test", "/abc", "hello"})
public String testFirst(HttpServletRequest request) {
//用传统的方式:sevletAPI
String id = request.getParameter("id");
String name = request.getParameter("name");
System.out.println("id=" + id + "," + name);
request.setAttribute("id", id);
request.setAttribute("name", name);
return "success";
}
//@PostMapping("/do")
//@RequestMapping(value = "/do",method = RequestMethod.GET) = @GetMapping("/do")
@GetMapping("/do")
public String testDo() {
System.out.println("---------do---------");
return "success";
}
/*
由页面中向controller传递参数
* */
//第二种方式;参数的名称和控制层方法形式参数名称一致,可以自动获取参数
@RequestMapping("first")
public String doFirst(Integer id, String name, HttpServletRequest request) {
System.out.println("id" + id + ",name" + name);
request.setAttribute("id", id);
request.setAttribute("name", name);
return "success";
}
//第三种方式:利用对象的形式 (新建User类)
/* @RequestMapping("login")
public String doLogin(@RequestParam(defaultValue = "30") Integer id, String name, HttpServletRequest request){
System.out.println("id"+id+",name"+name);
request.setAttribute("id",id);
request.setAttribute("name",name);
return "success";
}*/
@RequestMapping("login")
public String doLogin(User user, HttpServletRequest request) {
System.out.println(user);
request.setAttribute("user", user);
return "success";
}
}
index.jsp
<%--
Created by IntelliJ IDEA.
User: ZEL
Date: 2022/4/26
Time: 14:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%-- 请求test -->DispatcherServlet-->MyController(testFirst())-->success.jsp--%>
<a href="test">测试test请求</a>
<br>
<a href="admin/test?id=20&name=张三">admin/test测试</a>
<a href="admin/hello">hello/test测试</a>
<a href="admin/do">注解的合并测试</a>
<hr>
<form action="admin/login" method="get">
id:<input type="text" name="id"><br>
name:<input type="text" name="name"><br>
<input type="submit" value="提交">
</form>
<a href="admin/first?id=20&name=张三">admin/first测试,获取参数</a>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置前端控制器-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation </param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!-- /: 拦截所有的请求但不包括.jsp请求
/*:拦截所有请求,包括.jsp
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
package com.it.entity;
public class User {
private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public User() {
}
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
}
success.jsp
<%--
Created by IntelliJ IDEA.
User: ZEL
Date: 2022/4/26
Time: 15:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>success.jsp</h3>
<hr>
<h3>
用户id:${id}<br/>
用户名:${name}
<hr/>
用户id:${user.id}<br/>
用户名:${user.name}
</h3>
</body>
</html>