SpringMVC 是用来干嘛的?
最核心的:DispatcherServlet
运行的时候需要web容器 —— 这里用的是Tomcat
首先,普通的java项目,并勾选 Web Application (4.0) :
代码示例:
首先,在web下WEB-INF下的 web.xml配置文件 中配置servlet:
(新建的web.xml文件都是继承自容器(这里是Tomcat容器)中的web.xml文件的(conf文件夹下))
myservlet
com.zhoulz.controller.MyServlet
myservlet
/my
然后,index.jsp 文件:
<%--
Created by IntelliJ IDEA.
User: dicfin
Date: 2022/11/9
Time: 17:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
$Title$
<%--$END$--%>
<%--本来显示的是 END --%>
${username}
xiaozhou学java
<%--然后就可以部署启动一下看看--%>
然后,在controller层下创建了 MyServlet 类,并让其继承了 HttpServlet 类:
要想继承 HttpServlet 类 ,需要先导入Tomcat下lib下的两个jar包:
jsp-api.jar
servlet.api.jar
package com.zhoulz.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MyServlet extends HttpServlet { //这里需要导包 HttpServlet的
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(this.getClass().getName());
//super.doPost(req, resp);
//这里写核心逻辑:
//第一步:获取对应的属性值
//获取当前参数的名称值
String username = req.getParameter("username");
//返回到页面里面
req.getSession().setAttribute("username",username);
//如果上面是全部的业务逻辑了,写完后,然后需要转发到页面中去
//怎么转发
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
this.doPost(req,resp);//get请求也转发到post请求中,做一个最基本的操作
}
}
注意:要配置Tomcat: —— 进行部署启动:
点击上方的 Add Configuration —> "+" —> Tomcat Service —> local —> Fix ,然后apply+ok即可,什么都不用配置。
这里,配置好运行的时候出错了:“Error running tomcat: Can‘t find catalina.jar ”
解决(换一个Tomcat),参考:
idea 导入java web项目报错:Error running tomcat: Can‘t find catalina.jar 解决方法_代码稀碎处的博客-CSDN博客
配置好后,点击运行按钮(正上方),会自动弹出网页:
然后,在网页上,可以发出请求,在后面添加: my?username=zhangsan,则显示:
成功运行。