手搭手入门SpringMVC
【摘要】 手搭手入门SpringMVC
Tomcat安装
Linux安装Tomcat https://bbs.huaweicloud.com/blogs/307171
Windos配置Tomcat
关于Tomcat服务器的目录
bin: 该目录是Tomcat服务器的命令文件存放的目录,打开关闭Tomcat
conf: 该目录是Tomcat服务器的配置文件存放目录。(Server.xml文件中可以配置端口号,默认Tomcat端口是8080)
lib: 该目录是Tom服务器核心程序目录,因为Tomcat服务器是java语言编写的,这里的jar包里面都是class文件。
logs: Tomcat服务器的日志目录,Tomcat服务器启动等信息都会在这个目录下生成日志文件。
temp: Tomcat服务器的临时目录。存储在临时文件。
webapps: 该目录当中就是用来存放大量的webapp(web application web应用)
work: 该目录
windos启动tomcat
浏览器访问
http://localhost:8080/
http://127.0.0.1:8080/
在Tomcat实现一个基本webapp应用
第一步:CATALINA_HOME/webapps 所有webapp要放到webaps目录下
第二步:CATALINA_HOME/webapps 下新建子目录,
第三步:在新建的子目录下创建资源文件
<!doctype html>
<html>
<head>
<title>index page</title>
<body>
<h1>hello world webapp</h1>
</body>
</head>
</html>
第四步:浏览器访问http://127.0.0.1:8080/demo/
在浏览器中加入一个超链接
<!-- 绝对路径 -->
<a href="/demo/test.html">test</a>
<a href="https://www.bilibili.com/">test2</a>
浏览器软件
WEB Server
DB Server
webapp
webapp与WEB Server直接有一套规范:JavaEE规范之Servlet规范。
Servlet的作用:webapp与WEB Server解耦合
Browser和WebServer之间有一套传输协议:http协议
webapp和DB Server之间有一套规范:JDBC规范
Servlet接口是Oracle提供的
Servlet接口是JavaEE的规范的成员
Tomcat服务器实现了Servlet规范,所以Tomcat服务器也需要使用Servlet
解决IDEA控制台乱码问题
解决Tomcat在windos的DOS窗口乱码问题
将UTF-8修改为GBK
IDEA集成Tomcat
IDEA项目关联Tomcat
SpringMVC开发步骤
IDEA新建空项目
或者
Pom.xml配置
添加SpringMVC的依赖,添加Servlet的依赖
<!-- 添加Springmvc的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- 添加servlet的依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- 指定资源文件-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
添加springmvc.xml配置文件+main.jsp页面
Springmvc.xml配置
SpringMVC.xml配置文件,指定包扫描,添加ViewResolver(视图解析器)
<!-- 包扫描-->
<context:component-scan base-package="com.qgs.controller"/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置前缀-->
<property name="prefix" value="/admin/"></property>
<!--配置后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
原理
在web.xml文件中注册SpringMVC框架(所有的web请求都是基于servlet)、在webapp目录下新建admin目录并新建main.jsp页面,新代替建index.jsp页面,发送请求给服务器
注册DispatcherServlet
DispatcherServlet要在web.xml文件中注册才可用
SpringMVC框架注册
删除模板中的旧版本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">
<!-- 注册SpringMVC框架-->
<servlet>
<servlet-name>springmvc01</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>springmvc01</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
使用springmvc跳转页面
springmvc.xml配置
<!-- 组件扫描-->
<context:component-scan base-package="com.qgs.controller"/>
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置前缀-->
<property name="prefix" value="/admin/"></property>
<!--配置后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
web.xml配置
<!-- 注册SpringMVC框架-->
<servlet>
<servlet-name>springmvc01</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>springmvc01</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/demo.action">跳转</a>
</body>
</html>
Servlet对象
//Spring创建Servlet对象
@Controller
public class testAction {
/**
* action中的功能实现由方法来完成
*
* action方法规范
* 访问选择public
* 方法返回值任意、方法名称任意、方法可以没有参数也可以是任意类型
*需要@RequestMapping注解声明访问路径
*
*/
@RequestMapping("/demo")
public String demo(){
return "main";//跳转至main.jsp页面
}
}
main.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>hello main</h2>
</body>
</html>
Tomcat配置
@RequestMapping详解
@RequestMappin映射服务器访问的路径
@RequestMappin可区分get请求和post请求
@RequestMappin的定义请求规则
通过@RequestMappin注解额可以定义处理器对于请求的映射规则。该注解可以注解在方法上。也可以注解在类上,但意义是不同的。
@RequestMappin的value属性用于定义所匹配请求的URI。 Value属性值常以”/”开始。
@Controller所注解的类中,可以定义多个处理方法。不同的处理方法所匹配的URI是不同的。这些不同的URL被指定在注解与方法之上的@RequestMappin的value属性中。
如类上和方法上都有@RequestMappin注解,则(虚拟路径)路径为${pageContext.request.contextPath} /test/demo
如类上没有@RequestMappin注解而方法有,则(虚拟路径)路径为${pageContext.request.contextPath} /demo
@RequestMappin区分get请求和post请求
@RequestMapping(value = "/demo",method = RequestMethod.GET)
public String demo(){
return "main";//跳转至main.jsp页面
}
@RequestMapping(value = "/demo",{RequestMethod.POST, RequestMethod.GET })
public String demo2(){
return "main";//跳转至main.jsp页面
}
action方法的返回值
五种返回类型值ModelAndView、String、void、Object、基本数据类型
Object:返回json格式的对象,自动将对象或集合转为json,使用Jackson工具进行转换,必须要添加jackson依赖,一般用于ajax请求。
Void:无返回值:一般用于ajax请求。
基本数据类型:用于ajax请求。
ModelAndView:返回数据和视图对象。(很少用)
String:资源地址,自动拼接前缀和后缀,还可以屏蔽自动拼接字符串,指定返回的路径
致敬每一位自学者,加油
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)