package com.vp.springtest.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.converter.xml.SourceHttpMessageConverter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author 作者 周明:
* @version 创建时间:2020年2月24日 上午9:29:18 类说明
*/
@Controller // 实例化当前控制器类
@RequestMapping("/") // 设置web访问地址
public class StudentController {
@RequestMapping(value = "/addStudent1", method = RequestMethod.POST) // value指定web访问地址...并限定只能通过GET方式访问
public String add1() {//
System.out.println("POST添加学生...");
return "index";
}
@RequestMapping(value = "/addStudent2", method = RequestMethod.GET) // value指定web访问地址...并限定只能通过GET方式访问
public String add2() {//
System.out.println("GET添加学生...");
return "index";
}
// 2.1接收页面值的第一种方式.直接在参数里面写一个和页面名字一样的变量就自动接收...di/ioc
@RequestMapping(value = "/addStudent3", method = RequestMethod.POST) // value指定web访问地址...并限定只能通过GET方式访问
public String add3(String sid, String sname, int sage) {//
System.out.println("学号:" + sid);
System.out.println("姓名:" + sname);
System.out.println("年龄:" + sage);
return "index";
}
// 2.2接收页面值的第二种方式,直接用对象,页面名字要与对象的属性名一样
@RequestMapping(value = "addStudent4", method = RequestMethod.POST)
public String add4(Student student) {
System.out.println(student.getSid());
System.out.println(student.getSname());
System.out.println(student.getScore());
return "index";
}
// 2.4非ioc/di方式,也就是原生 的入侵方式,用HttpServletRequest
@RequestMapping(value = "addStudent5", method = RequestMethod.POST)
public String add5(HttpServletRequest request) {
String sid = request.getParameter("sid");
String sname = request.getParameter("sname");
double score = Double.parseDouble(request.getParameter("score"));
System.out.println(sid);
System.out.println(sname);
System.out.println(score);
return "index";
}
// 处理 javascript请求
@RequestMapping(value = "/addStudent6", method = RequestMethod.GET) // value指定web访问地址...并限定只能通过GET方式访问
public String add6(String sid, String sname, int sage) {//
System.out.println("学号:" + sid);
System.out.println("姓名:" + sname);
System.out.println("年龄:" + sage);
return "index";
}
// 处理 ajax请求
@RequestMapping(value = "/addStudent7", method = RequestMethod.GET) // value指定web访问地址...并限定只能通过GET方式访问
public String add7(String sid, String sname, String sage) {//
System.out.println("学号:" + sid);
System.out.println("姓名:" + sname);
System.out.println("年龄:" + Integer.parseInt(sage));
return "index";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>添加学生</title>
<script type="text/javascript" src="js/jquery-1.7.js"></script>
</head>
<body>
<form action="addStudent1" method="post">
请输入学号:<input type="text" name="sid"/><br/>
请输入姓名:<input type="text" name="sname"/><br/>
请输入年龄:<input type="text" name="sage"/><br/>
<input type="submit" value="添加学生"/>
</form>
<hr/>
<a href="addStudent2">通过Get方式来请求服务器的添加方法</a>
<hr/>
<!-- springmvc是如何接收页面的值呢1.1 -->
<form action="addStudent3" method="post">
请输入学号:<input type="text" name="sid"/><br/>
请输入姓名:<input type="text" name="sname"/><br/>
请输入年龄:<input type="text" name="sage"/><br/>
<input type="submit" value="添加学生"/>
</form>
<hr/>
<!-- springmvc是如何接收页面的值呢1.2 -->
<form action="addStudent4" method="post">
请输入学号:<input type="text" name="sid"/><br/>
请输入姓名:<input type="text" name="sname"/><br/>
请输入分数:<input type="text" name="score"/><br/>
<input type="submit" value="添加学生"/>
</form>
<hr/>
<!-- springmvc是如何接收页面的值呢1.3 -->
<form action="addStudent5" method="post">
请输入学号:<input type="text" name="sid"/><br/>
请输入姓名:<input type="text" name="sname"/><br/>
请输入分数:<input type="text" name="score"/><br/>
<input type="submit" value="添加学生"/>
</form>
<hr/>
<!-- 用js请求,也是一样的 -->
请输入学号:<input type="text" id="sid"/><br/>
请输入姓名:<input type="text" id="sname"/><br/>
请输入分数:<input type="text" id="score"/><br/>
<input type="button" value="添加学生" onclick="sendto()"/>
<script>
function sendto(){
var vsid = document.getElementById("sid").value;
var vsname = document.getElementById("sname").value;
var vscore = document.getElementById("score").value;
//转发里面的参数名一定要与控制中心的参数名一样
window.location = "addStudent6?sid="+vsid+"&sname="+vsname+"&sage="+vscore;
}
</script>
<hr/>
<!-- 用jquery操作ajax请求,也是一样的 -->
请输入学号:<input type="text" id="sid2"/><br/>
请输入姓名:<input type="text" id="sname2"/><br/>
请输入分数:<input type="text" id="sage2"/><br/>
<input type="button" value="添加学生" id="btn"/>
<script>
$(function(){
$("#btn").click(function(){
var v1 = $("#sid2").val();
var v2 = $("#sname2").val();
var v3 = $("#sage2").val();
$.ajax({
type: "GET",
url: "addStudent7",
data: "sid="+v1+"&sname="+v2+"&sage="+v3,
success: function(data){
}
});
});
});
</script>
</body>
</html>
@RequestMapping(value = “ss/addStudent1”, method = RequestMethod.POST) //
value是指地址,method是指以什么来接受,一般是get或post。
怎么找到的,web。xml配置的那个类是spring bean容器专门控制serlect,先找到实列化为ss的控制层,再找到里面接收地址是addStudent1的方法。
@RequestMapping(value = “/addStudent3”, method = RequestMethod.POST) // value指定web访问地址…并限定只能通过GET方式访问
public String add3(String sid, String sname, int sage) {//
接收的参数名字要跟页面传的参数的名称一样,不然接收不到值。同样如果方法里面的参数是对象,那么页面的的参数名字跟对象的属性名称一样。同时还会将接收到的对象直接传到该方法返回到的界面中去。