搭建Servlet的web环境
迪丽瓦拉
2025-06-01 20:46:12
0次

构建servlet

idea构建一个maven项目

IDEA实现Maven项目创建并连接Tomcat

在这里插入图片描述
配置tomcat后启动tomcat

在这里插入图片描述
跳转到浏览器:
在这里插入图片描述
配置好tomcat服务器后启动正常应该跳转到index.jsp页面,这里出现404说明,未配置成功。

配置工件

出现该原因是因为未配置工件,idea配置工件的作用是将web的war包放在tomcat的webapps目录下,这样才能在tomcat启动时访问到。

配置工件的步骤如下:

  1. 在File中打开Project Structure…
    在这里插入图片描述

  2. 选择web application工件,exploed表示拟部署,并不把war包放在webapps目录下但仍然可以在启动tomcat是访问web项目,aechive是部署,将war包放在webapps目录下。这里选在From Module即可。
    在这里插入图片描述

  3. 上述步骤是在idea中设置工件,还需要在项目中,应用工件设置

在这里插入图片描述
点击+按钮

在这里插入图片描述
出现下面的工件即可:

在这里插入图片描述

  1. 再次启动就会自动跳转到index.jsp页面

在这里插入图片描述

修改默认url地址

部署的工件会自动生成url的地址http://localhost:8080/spring_security_war_exploded/这样看起来不便,这也是可以更改的:

在这里插入图片描述

图中横线的部分改为自己喜欢的uri即可,改完启动tomcat会自动跳转到index.jsp。

在这里插入图片描述

生成servlet

servlet有多种,一般都使用HttpServlet,其他请移步Java开发网站的核心servlet。

创建一个class类继承HttpServlet ——> extends HttpServlet——> 重写doGet和doPost方法:

public class TestController extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");PrintWriter out=resp.getWriter();out.write("Test");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}
}

servlet输入流

servlet的输出流是HttpServletResponse对象的getWriter方法,用于将数据流写入到http响应体中。其返回值类型是PrintWriter类型:

在这里插入图片描述
PrintWriter继承自Writer输出流:
在这里插入图片描述
通过PrintWriter提供的方法可以将字符数据写入到响应体。

请求servlet

请求servlet的方式有两种:1、配置文件web.xml;2、@WebServlet注解

web.xml配置一个servlet

  servlet2com.example.controller.TestControllerservlet2/servlet2

注解配置servlet

@WebServlet("/servlet1")
public class LoginController extends HttpServlet{protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, IOException {// TODO Auto-generated method stubrequest.setCharacterEncoding("utf-8");PrintWriter out=response.getWriter();out.write("Hello World");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}
}

在这里插入图片描述
在这里插入图片描述

servlet转发与重定向

转发

转发是返回html页面,如返回模板引擎,共用一次请求和请求参数

@WebServlet("/servlet3")
public class RedirectController extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getRequestDispatcher("index.jsp").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

HttpServletRequest的getRequestDispatcher方法,如果字符串有后缀,就在webapp下寻找该文件并返回,如果没有后缀,就跳转到另一个servlet中。

特点:
服务器内部跳转的特点:
1.需要使用request对象来完成
2.服务器内部跳转期间,是把请求request和响应response转发到下一个资源中,所以在整个跳转期间所有涉及到的资源使用的都是同一个request和response。
3.服务器内部跳转,不会改变浏览器地址栏中的地址。

重定向

重定向是基于HttpServletResponse的sendRedirect方法,用户返回页面和servlet。如果字符串有后缀,就在webapp下寻找该文件并返回,如果没有后缀,就跳转到另一个servlet中。

@WebServlet("/servlet3")
public class RedirectController extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//req.getRequestDispatcher("index.jsp").forward(req,resp);resp.sendRedirect("/servlet2");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}

特点:

1.需要使用response对象来完成
2.每一个客户端重定向,浏览器都会发出新请求,也就意味着在服务器内部会产生新的request对象和response对象
3.客户端重定向,会改变浏览器地址栏中的地址。

总结

servlet既能返回数据由能返回页面,就可以用前后端分离或混合开发来开发web应用了,更多细节请移步Java开发网站的核心servlet

相关内容

热门资讯

约满,限流!全国多处景区发布公... 来源:应急管理部今天是国庆假期第4天假期过半你在哪里耍?不少热门景区人潮涌动开启“人从众”模式四川、...
年轻态里玩转“电影+”,“星海... 海边草坪变身露天影院,市集、懒人沙发、海风交织成浪漫的观影记忆。10月1日至3日,“星海拾光·电影奇...
“演唱会+潮玩休闲” 来成都凤... 封面新闻记者 赖芳杰这个国庆,成都城北的氛围感被凤凰山体育公园拉满!10月3日,李健「万物安生时」巡...
人潮涌动服务不减!国庆济野以暖... 齐鲁网·闪电新闻10月4日讯(山东广播电视台记者 房华 于宁)金秋迎华诞,欢乐赴山野。国庆黄金周期间...
国庆假期第三天,济南30家重点... 据“济南发布”消息,10月3日,2026年国庆假期进入第三日,济南文旅市场延续连日旺势,全市300余...
枣庄台儿庄纪念馆研学游成为过节... 齐鲁网·闪电新闻10月4日讯 国庆假期,纪念馆研学游成为过节新风尚,大批游客、亲子家庭以及研学团队来...
身边的红色地标丨香山革命纪念馆...   新华社北京10月4日电(记者罗鑫)北京西郊,林木苍翠、环境清幽,坐落于此的香山革命纪念馆庄重肃穆...
活力中国 和美假期(新时代画卷... 本文转自:人民日报  畅快吃  新疆维吾尔自治区库车市阿克吾斯塘乡巴扎上,摊主为顾客递上烤制好的特色...
“感觉有一亿人”!国庆多地景区... 国庆长假进入第三天,各地景区进入游客接待高峰期,有游客感叹:“感觉有一亿人!”而从多地发布的旅游数据...
国庆假期第三天,北京市属公园接... 10月3日,北京青年报记者从北京市公园管理中心获悉,国庆假期第三天,14家市属公园共接待游客78.9...