网站建设方案对比分析,wordpress 3.8 问题,jsp如何做网站界面,网站开发的图片个人简介#xff1a;Java领域新星创作者#xff1b;阿里云技术博主、星级博主、专家博主#xff1b;正在Java学习的路上摸爬滚打#xff0c;记录学习的过程~ 个人主页#xff1a;.29.的博客 学习社区#xff1a;进去逛一逛~ RequestMapping注解一、SpringMVC环境准备1.相… 个人简介Java领域新星创作者阿里云技术博主、星级博主、专家博主正在Java学习的路上摸爬滚打记录学习的过程~ 个人主页.29.的博客 学习社区进去逛一逛~ RequestMapping注解一、SpringMVC环境准备1.相关Maven依赖2.配置web.xml文件3.创建请求控制器4.创建SpringMVC的XML配置文件二、 RequestMapping注解 功能功能案例功能小结三、RequestMapping注解 位置说明四、RequestMapping注解 属性⚪value属性⚪method属性⚪params属性⚪headers属性五、ant风格的路径六、路径中占位符的使用一、SpringMVC环境准备 1.相关Maven依赖 dependencies!-- SpringMVC --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.1/version/dependency!-- 日志 --dependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactIdversion1.2.3/version/dependency!-- ServletAPI --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency!-- Spring5和Thymeleaf整合包 --dependencygroupIdorg.thymeleaf/groupIdartifactIdthymeleaf-spring5/artifactIdversion3.0.12.RELEASE/version/dependency/dependencies同时记得将打包方式改为war包(web工程需要的方式)2.配置web.xml文件 首先在main包下创建webapp 项目结构中创建web.xml配置文件 这里创建时需要注意目录是否正确 – src\main\webapp\WEB-INF\web.xml 配置web.xml文件
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0!-- 配置SpringMVC的前端控制器对浏览器发送的请求统一进行处理 --servletservlet-namespringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!-- 通过初始化参数指定SpringMVC配置文件的位置和名称 --init-param!-- contextConfigLocation为固定值 --param-namecontextConfigLocation/param-name!-- 使用classpath:表示从类路径查找配置文件例如maven工程中的src/main/resources --param-valueclasspath:springMVC.xml/param-value/init-param!--作为框架的核心组件在启动过程中有大量的初始化操作要做而这些操作放在第一次请求时才执行会严重影响访问速度因此需要通过此标签将启动控制DispatcherServlet的初始化时间提前到服务器启动时--load-on-startup1/load-on-startup/servletservlet-mappingservlet-namespringMVC/servlet-name!--设置springMVC的核心控制器所能处理的请求的请求路径/所匹配的请求可以是/login或.html或.js或.css方式的请求路径但是/不能匹配.jsp请求路径的请求/*则可以匹配所有方式的请求路径--url-pattern//url-pattern/servlet-mapping
/web-app3.创建请求控制器
由于前端控制器对浏览器发送的请求进行了统一的处理但是具体的请求有不同的处理过程因此需要创建处理具体请求的类即请求控制器
请求控制器中每一个处理请求的方法成为控制器方法
因为SpringMVC的控制器由一个POJO普通的Java类担任因此需要通过Controller注解将其标识为一个控制层组件交给Spring的IoC容器管理此时SpringMVC才能够识别控制器的存在
import org.springframework.stereotype.Controller;/*** author .29.* create 2023-03-04 17:17*/
Controller
public class RequestMappingController {
} 4.创建SpringMVC的XML配置文件 XML配置文件内容
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!--配置自动扫描的包--context:component-scan base-packagecom.haojin.java.controller/!-- 配置Thymeleaf视图解析器 --bean idviewResolver classorg.thymeleaf.spring5.view.ThymeleafViewResolverproperty nameorder value1/property namecharacterEncoding valueUTF-8/property nametemplateEnginebean classorg.thymeleaf.spring5.SpringTemplateEngineproperty nametemplateResolverbean classorg.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver!-- 视图前缀 --property nameprefix value/WEB-INF/templates//!-- 视图后缀 --property namesuffix value.html/property nametemplateMode valueHTML5/property namecharacterEncoding valueUTF-8 //bean/property/bean/property/bean/beans二、 RequestMapping注解 功能 从注解名称上我们可以看到RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来建立映射关系。
SpringMVC 接收到指定的请求就会来找到在映射关系中对应的控制器方法来处理这个请求。
功能案例
实现对index.html页面的访问 通过超链接跳转指定页面
1.index.html页面
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title主页/title
/head
body
h1这里是.29.的主页/h1
!--Thymeleaf视图模板技术处理绝对路径链接自动添加上下文--
a th:href{/target}跳转进入专栏/a/body
/html2.指定页面target.html
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title专栏/title
/head
body
h1这里是SpringMVC专栏/h1/body
/html3.请求控制器中创建处理请求的方法
RequestMapping注解处理请求和控制器方法之间的映射关系RequestMapping注解的value属性可以通过请求地址匹配请求/表示的当前工程的上下文路径localhost:8080/springMVC/
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/*** author .29.* create 2023-03-04 16:07*/
Controller
public class testController {RequestMapping(value /)public String index(){return index;}RequestMapping(value/target)public String target(){return target;}
} 4.效果 功能小结
浏览器发送请求若请求地址符合前端控制器的url-pattern该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件通过扫描组件找到控制器将请求地址和控制器中RequestMapping注解的value属性值进行匹配若匹配成功该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称该视图名称会被视图解析器解析加上前缀和后缀组成视图的路径通过Thymeleaf对视图进行渲染最终转发到视图所对应页面 三、RequestMapping注解 位置说明 RequestMapping标识一个类设置映射请求的请求路径的初始信息 RequestMapping标识一个方法设置映射请求请求路径的具体信息
当我们同时使用RequestMapping标识请求控制类和其中的请求方法但是请求路径只设置了具体信息而不包含初始信息时就会出现找不到资源的错误。
请求控制类
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;/*** author .29.* create 2023-03-04 17:17*/
Controller
RequestMapping(value /one) //在类上标识RequestMapping注解
public class RequestMappingController {//当前请求路径应当是/one/testRequestMappingRequestMapping(value /testRequestMapping)public String success(){return success;}
}
访问的主页面
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title主页/title
/head
body
h1这里是.29.的主页/h1
a th:href{/target}跳转进入专栏测试RequestMapping 功能/a br
a th:href{/testRequestMapping}测试RequestMapping 标识位置/a br
/body
/html就会发现找不到对应资源 四、RequestMapping注解 属性 ⚪value属性 RequestMapping注解的value属性通过请求的请求地址 匹配请求映射 RequestMapping注解的value属性是一个字符串类型的数组表示该请求映射能够匹配多个请求地址所对应的请求 RequestMapping注解的value属性必须设置至少通过请求地址匹配请求映射
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;/*** author .29.* create 2023-03-04 17:17*/
Controller
RequestMapping(value /one) //在类上标识RequestMapping注解
public class RequestMappingController {//当前请求路径应当是/one/testRequestMappingRequestMapping(value /testRequestMapping)public String success(){return success;}//value属性可以匹配多个请求地址所对应的请求其中一个请求路径映射匹配即可RequestMapping(value {/test,/test2,test3},)public String success2(){return success;}}
!DOCTYPE html
html langen xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title主页/title
/head
body
h1这里是.29.的主页/h1
a th:href{/target}跳转进入专栏测试RequestMapping 功能/a br
a th:href{/one/testRequestMapping}测试RequestMapping 标识位置/a br
a th:href{/one/test}测试RequestMapping value属性/a br
/body
/html⚪method属性 RequestMapping注解的method属性通过请求的请求方式get或post匹配请求映射; RequestMapping注解的method属性是一个RequestMethod类型的数组表示该请求映射能够匹配多种请求方式的请求; 若当前请求的请求地址满足请求映射的value属性但是请求方式不满足method属性则浏览器报错405Request method ‘POST’ not supported
使用方式
RequestMapping(value 请求路径1method RequestMethod.GET)RequestMapping(value {请求路径1,请求路径2}method {RequestMethod.GET,RequestMethod.POST})注意 1、对于处理指定请求方式的控制器方法SpringMVC中提供了RequestMapping的派生注解
处理get请求的映射–GetMapping
处理post请求的映射–PostMapping
处理put请求的映射–PutMapping
处理delete请求的映射–DeleteMapping
2、常用的请求方式有getpostputdelete
但是目前浏览器只支持get和post若在form表单提交时为method设置了其他请求方式的字符串put或delete则按照默认的请求方式get处理 ⚪params属性 RequestMapping注解的params属性通过请求的请求参数匹配请求映射 RequestMapping注解的params属性是一个字符串类型的数组可以通过四种表达式设置请求参数和请求映射的匹配关系 若当前请求满足RequestMapping注解的value和method属性但是不满足params属性此时页面会报 错误400
使用方式 “param”要求请求映射所匹配的请求必须携带param请求参数
“!param”要求请求映射所匹配的请求必须不能携带param请求参数
“paramvalue”要求请求映射所匹配的请求必须携带param请求参数且paramvalue
“param!value”要求请求映射所匹配的请求必须携带param请求参数但是param!value
RequestMapping(value {请求路径1, 请求路径2}params {username,!sex,age18,password!123456}
)注html页面中路径携带的参数使用括起来
a th:href{/test(usernameadmin,password123age18)测试RequestMapping的params属性--/test/a⚪headers属性 RequestMapping注解的headers属性通过请求的请求头信息匹配请求映射 RequestMapping注解的headers属性是一个字符串类型的数组可以通过四种表达式设置请求头信息和请求映射的匹配关系 若当前请求满足RequestMapping注解的value和method属性但是不满足headers属性此时页面显示404错误即资源未找到
使用方式 “header”要求请求映射所匹配的请求必须携带header请求头信息
“!header”要求请求映射所匹配的请求必须不能携带header请求头信息
“headervalue”要求请求映射所匹配的请求必须携带header请求头信息且headervalue
“header!value”要求请求映射所匹配的请求必须携带header请求头信息且header!value
请求头信息是用Map集合存储的不知道请求头包含什么信息的可以浏览器搜索一下。五、ant风格的路径 SpringMVC支持的ant风格路径 使用方式 这里表示任意的单个字符; *表示任意的0个或多个字符; **表示任意的一层或多层目录;
注意在使用**时只能使用/**/xxx的方式;
RequestMapping(/a?a/test)RequestMapping(/a*a/test)RequestMapping(/**/test)六、路径中占位符的使用 SpringMVC路径中的占位符常用于RESTful风格中当请求路径中将某些数据通过路径的方式传输到服务器中就可以在相应的RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据在通过PathVariable注解将占位符所表示的数据赋值给控制器方法的形参。
使用方式 {xxx}表示传输的数据在通过PathVariable注解将占位符所表示的数据赋值给控制器方法的形参
RequestMapping(/testRest/{name}/{sex}/{age})
public String testRest(PathVariable(name) String name, PathVariable(sex) String sex,PathVariable(age) int age){System.out.println(name:name,sex:sex,age:age);return success;
}RESTful风格方式传递路径中的参数
a th:href{/testRest/.29./man/18}测试路径中的占位符--/testRest/abr 文章转载自: http://www.morning.hmjasw.com.gov.cn.hmjasw.com http://www.morning.qpnb.cn.gov.cn.qpnb.cn http://www.morning.czgtt.cn.gov.cn.czgtt.cn http://www.morning.mzydm.cn.gov.cn.mzydm.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.wsyq.cn.gov.cn.wsyq.cn http://www.morning.xinyishufa.cn.gov.cn.xinyishufa.cn http://www.morning.tssmk.cn.gov.cn.tssmk.cn http://www.morning.cxnyg.cn.gov.cn.cxnyg.cn http://www.morning.ktmbr.cn.gov.cn.ktmbr.cn http://www.morning.pqnpd.cn.gov.cn.pqnpd.cn http://www.morning.rmfw.cn.gov.cn.rmfw.cn http://www.morning.fpjxs.cn.gov.cn.fpjxs.cn http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn http://www.morning.qcnk.cn.gov.cn.qcnk.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.clpdm.cn.gov.cn.clpdm.cn http://www.morning.pfmsh.cn.gov.cn.pfmsh.cn http://www.morning.kfysh.com.gov.cn.kfysh.com http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.dbfp.cn.gov.cn.dbfp.cn http://www.morning.rlkgc.cn.gov.cn.rlkgc.cn http://www.morning.rykmz.cn.gov.cn.rykmz.cn http://www.morning.jydhl.cn.gov.cn.jydhl.cn http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn http://www.morning.ktrh.cn.gov.cn.ktrh.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.frpfk.cn.gov.cn.frpfk.cn http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn http://www.morning.kzrbn.cn.gov.cn.kzrbn.cn http://www.morning.rdnpg.cn.gov.cn.rdnpg.cn http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn http://www.morning.qfzjn.cn.gov.cn.qfzjn.cn http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.qsbcg.cn.gov.cn.qsbcg.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.trtdg.cn.gov.cn.trtdg.cn http://www.morning.nlkm.cn.gov.cn.nlkm.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.kcbml.cn.gov.cn.kcbml.cn http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.dygqq.cn.gov.cn.dygqq.cn http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.hxsdh.cn.gov.cn.hxsdh.cn http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn http://www.morning.wschl.cn.gov.cn.wschl.cn http://www.morning.skscy.cn.gov.cn.skscy.cn http://www.morning.jfjfk.cn.gov.cn.jfjfk.cn http://www.morning.gcfg.cn.gov.cn.gcfg.cn http://www.morning.dmtld.cn.gov.cn.dmtld.cn http://www.morning.kgkph.cn.gov.cn.kgkph.cn http://www.morning.qkzdc.cn.gov.cn.qkzdc.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn http://www.morning.mrlls.cn.gov.cn.mrlls.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.pljdy.cn.gov.cn.pljdy.cn http://www.morning.nlysd.cn.gov.cn.nlysd.cn http://www.morning.jtmrx.cn.gov.cn.jtmrx.cn http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.nmlpp.cn.gov.cn.nmlpp.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn http://www.morning.mzwqt.cn.gov.cn.mzwqt.cn http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn http://www.morning.beijingzy.com.cn.gov.cn.beijingzy.com.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.tymwx.cn.gov.cn.tymwx.cn