注解Controller和RequestMapping

在前面的样例中,在springmvc-servlet.xml中配备的超链接央springboot常用注解求与控制器之间的映射联络,在这里我们运用注解配备映射联络(记住打开扫描)。

运用根java面试题据注解java工作培训班的控制器spring结构,具有如下两个长处:

  • 能够在一个控制器类中编写多个处理办法,然后能够处理多个央求,减少控制器类的数量,便利后期的维护。不像在配备文件中安顿映射每个控制器类只能对应一个央求。
  • 不需求在配备文件中安顿映射,仅需求运用RequestMapping注释类型注解一个办法进行央求处理。

RequestMapping注解分两种办法等级注解和类等级注解

1.springboot1 办法等级

@RequestMapping(value="/index/login")

value特征将央求URI映射到app装置下载办法,是RequestMapping注解的默许特征,假如只需一个value特征,能够省掉“value=”。

在前次项目的基础上spring结构

  1. 在springmvc-servlet打开注解扫描
<?xmjava工作培训班l version="1.0" ejava模拟器ncoding="UTF-8"?>
<beans xmlnspringboots="http://w宫颈癌ww.sspringpringframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchttp 302hema-instance"
xmlns:contexappstoret="http://www.springframework.org/schema/context"http 404
xmlns:mvjava面试题c="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/bespringboot面试题ans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframewohttp://192.168.1.1登录rk.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.applicationorg/schema/mvc/Gosprihttp://192.168.1.1登录ng-mvc.xsd">
<context:component-scan base-package="javascriptcom.controller" />
<!-- 为控制器返回值主动增加前缀后缀 --&spring面试题gt;
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="sufspringcloudfix" value=".jsp" />
</bspringboot常用注解ean>
&lthttps和http的差异;/beans>
  1. 批改控制器类
@Controller
pub狗狗币licclassIndexController{
@RequestMapping(value="/index/login"http协议)
publicSHTTPtringlogin(){approve
/**return 的 logijava开发n代表逻辑视图称谓,需求依据SpringMVC配备
*文件中intspringmvc的作业原理ernalResourceViewResolver的前缀和后缀找到对应的物理视图
*/
reJavaturn"login";
}
@RequestMappingspringmvc的作业原理(value="/index/register")
publicStringregister(){
return"registerspringboot";
}
}

1.2 类等级

@Controller
@RequestMhttp协议apping("/index")springboot常用注解
publiappearcclassIndexController{
@RequestMapping("/springcloudlogin"公积金借款)
publicStringlogin(){
return"login";
}
@RequestMappspringbooting("/register")
publicStringregister(){
return"register";
}
}

Controller接纳央求参数的常见办法

2.1 经过实体bean接纳央求参数

  1. 建立参数们对应的Javspring面试题aBean
package pojo;
public classhttp协议 U龚俊serForm {
private String uname;//与央求参数称谓相同
private String upass;
prispring面试题vate String reupasappreciates;
//getter和setter
}公积金借款
  1. 批改JSP页面

login.jsp

<%@ page language="java" contentTygooglepe="text/html; charset=UTF-8" pageEncodingappstore="UTF-8"%>
<!DOCTYPE hjava模拟器tml PUBLIC "-//W3C//DTD HTML 4java初学.01 Transitional//EN" "http工商银行://www.w3.org/TR/html4/ljava开发oosespringcloud五大组件.dtd">
<html>
<head>
<meta htspringboottpappointment-equiv="Content-Type" content="text/hhttpwatchtml; charset=UTF-8">
<titlspringboot常用注解e>spring面试题Insert tit狗狗币le here</title>
</heaappled>
<body>
登录页面。
<form action="${pageContext.reqjava言语uest.contextPath }/main" method="pohttp 302st">
<table>
<tr>
<td>名字:</tdappointment>
<td><input type="text" namSpringe="unaapp装置下载me" class="textSize">&lappointmentt;/td>
</tr>
<tr>
<td>暗码:</td>java言语
<tspringmvc的作业原理d><input type="password" name="upasGos" class="textSispringboot常用注解zehttpwatch"></td&gthttpclient;
</tr>
<tr>
<td colspan="2"><java言语button onclick="gogo()"/> <button onclick="cancel()"/></td>
</tr>
</table>
${mejava难学吗ssageError}
</form>
</body&gspring结构t;
</html>

mhttp 404ain.jsp,作为登陆成功页面

&ltjava初学;%@ pagespringboot面试题 language="java"Go contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-httpwatch//W3C//DTD HTML 4.01 Transitional//EN" "httpwatchhttp:appear//www.w3.org/TR/hspringtml4/loose.dtd">
<html>
&springboot面试题lt;head>
<http://192.168.1.1登录meta http-equhttp协议iv="Content-Type" contenAPPt="text/html; charset=UTF-8">
<title>主页面</title>
</head>
&ltappointment;body>
欢迎springboot面试题${sessionScoapprovepe.u.uname }拜访该体系。
</body>
</html>
  1. 批改控制器类
@RequestMapping("/main")
public String main(UserForm user, HttpSession sehttpwatchssion, Model model) {
if("herlo".equals(uhttpclientser.getUname(springcloud五大组件))&&"123456".equals(user.getUpass())) {
session.setAttribute("u", user);
return "main";
}
else {
mjavascriptodel.addAttjava难学吗ribute("messageError", "用户名或暗码过失")java面试题;
return "login";
}
}

2.2 经过处理办法的形Java参接纳央求参数

经过处理办法的形参接纳央求参数,也就是直接把表单参数写在控制器类办法的形参中,即形参称谓与央求参数称谓完全相同。该接纳参数办法适用于get和post提交央求办法。

/**
* 处理注册 运用UserhttpclientForm政策(实体http://192.168.1.1登录JavaBean)接纳注册页面提交的央求参数
*/
@RequestMapping("/register")
public String register(String uname,String upass, Model model) {
if ( "approvezhangsan".equals(uname)&&"123456".equals(upass) ) {
//awa
}
}

2.3 经过HttpServletRequest接纳央求参数

经过HttpServletRequest接纳央求参数,适用于gappleet和post提交央求办法。

publicStringregister(HttpServletRequestrequest,Modelmodel){
Strjava工作培训班inguname=request.getParametspring面试题er("uname");
Stringupapproachass=request.getP宫颈癌arameter("upass");
if ("zhangsan".equals(uname)&&http署理"1java面试题23456".equals(upass) {
//aspring是什么意思wa
}
}

2.4 经过@PathVariable接纳URL中的央求参数

  • @Pathhttps和http的差异Variable无法接纳http署理政策,但是可springboot面试题以接纳多个值。
  • @PathVariableapproach(“xxx”)经过 @PathVariable 能够将URL中占位符参数{xxx}绑定到处理器类的办法形springboot面试题参中
@RequestMapspringcloudping(value="/register/{uname}/{upass}http 302",mehttp 500thod=RequestMethod.GET)
//有必要加method特征,经过@PathVariablespringcloud获取URL中的参数
publicStringregister(@PathVariableStringuname,@PathVariableS狗狗币tringupass,Modelmodel){
if ("zhangsan".equals(uname)&&"123456".equals(upass)) {
//awa
}
}

2.httpwatch5 经过@http 404RequestParam接纳央求参数

  • 经过@RequestParam接纳央求参数,适用于get和post提交央求办法。springboot面试题
  • 经过@RequestParam接纳央求参数与2.2“经过处理办法的形参接纳央求参数”的差异是:当央求参数与接纳参数名不一致时,后者不会报404过失,java面试题而“经过@RequestParam接纳央求参数”会404过失。
/** * 处理注册 运用@RequestParam接纳央求参数*/
@RequestMahttp 302pping("/register")
public String register(@RequestParam String uname, @RequestParam String upass, Model modspringbootel) {
if ("zhangsan".equals(uname)&&"123456".equals(upasgoogles)) {
//aspringbootwa
}
}

2.6 经过@ModelAGottribute接httpclient收央求参数

  • @ModelAttribute注解放在处理方java工作培训班法的形参上时,用于将多个央求参数封装到一个宫颈癌疫苗实体政策,主动暴露为模型数据用于视图页面展示时运用。而2.1中仅仅将多个央求参数封装到一个实体政策,并不能暴露为模型数据(需求运用model.addAttribute语句才华暴露为模型数据,数据绑定与模型数据展示,可参阅第12章的内容)。
  • 经过@Modhttp协议elAttribute注解接纳央求参数,适用于get和post提交央求办法。