maven servlet配置_Servlet入门
Servlet
Servlet简介
Servlet是sun公司开发动态web的一门技术
Sun在这些API中提供的一个接口叫: Servlet, 如果你想开发一个Servlet程序, 只需要完成两个小步骤:
- 编写一个类, 实现Servlet接口
- 把开发好的Java类部署到web服务器中
把实现了Servlet接口的Java程序叫做Servlet
HelloServlet
Servlet接口在Sun公司有两个默认的实现类: HttpServlet, GenericServlet(HttpServlet继承自GenericServlet)
- 构建一个普通的Maven项目
- 删掉src里面的所有东西, 以后我们的学习就在这个项目里建立Module; 这个空的工程是Mavan的主工程
- 关于Maven父子工程的理解:
<modules>
父项目中的jar包, 子项目可以直接使用, 类似
son
Maven环境优化
<?xml version="1.0" encoding="UTF-8"?>
编写一个Servlet程序
- 编写一个普通类
- 实现Setvlet接口, 我们直接继承HttpServlet
package
编写Servlet的映射(web.xml)
为什么需要映射: 我们写的是Java程序, 但是要通过浏览器访问. 浏览器需要链接web服务器, 所以我们需要在web服务中注册我们写的Servlet, 还需要给他一个浏览器能够访问的路径;
<?xml version="1.0" encoding="UTF-8"?>
最后配置Tomcat, 注意配置项目发布的路径并启动测试即可
Servlet原理
Servlet是由Web容器调用, web容器(Tomcat)在收到浏览器请求后, 如果是第一次访问, 将生成Servlet的class, 速度相对较慢. 然后通过发送请求(包含请求头和请求体) 给Servlet后, Servlet会根据用户的代码逻辑和请求给出响应信息(响应头和响应体)并通过web容器响应给客户端(浏览器)
Mapping原理
- 一个Servlet可以指定一个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping> - 一个Servlet可以指定多个映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping> - 一个Servlet可以指定通用路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping> - 默认请求路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> - 指定前缀/后缀, 注意*前面不能加项目映射路径(只要以.do或者.peng结尾的就算有中间路径也可以用)
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.peng</url-pattern>
</servlet-mapping> - 404页面(优先级问题: 指定了固有的映射路径优先级最高, 如果找不到就会走默认的处理请求)
<!--404-->
<servlet>
<servlet-name>error</servlet-name>
<servlet-class>com.peng.servlet.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>error</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
package com.peng.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class ErrorServlet extends HelloServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//以下两行等于 resp.setContentType("text/html; charset = utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
writer.print("<h1>404<h1>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
maven servlet配置_Servlet入门相关推荐
- java servlet 配置_servlet与javabean配置
servlet与javabean配置 (一):目录结构 tomcat的目录结构如下: 目录名 简介 bin 存放启动和关闭tomcat脚本 conf 包含不同的配置文件,server.xml(Tomc ...
- maven servlet配置_第一个Servlet配置
使用IntelliJ IDEA创建一个Simple Maven项目 2. Add Framework Support 3. 配置Tomcat 打开菜单Run -> 选择Edit Configur ...
- IntelliJ IDEA 使用Maven工具 (新手入门简单操作,maven的下载,安装,配置)
一.maven的概述 1.什么是maven maven是一个项目管理工具,包含项目管理,插件以及目标的逻辑等.maven为我们提供了一系列的执行流程: maven执行流程 2.maven的下载安装 ...
- 项目jetty服务器,maven项目配置Jetty服务器
org.mortbay.jetty jetty-maven-plugin 8.1.7.v20120910 5 /bfc-loms 8080 500000 主要在maven的pom.xml里增加如上配置 ...
- api报错 javaee maven_JavaEE关于Maven的配置与学习
关于Maven的配置与学习 1. 简介 官方说法:Apache Maven is a software project management and comprehension tool. Based ...
- Maven如何配置阿里镜像及安装全步骤
文章目录 配置阿里镜像 安装环境准备 maven安装步骤 配置中央仓库 在IDEA中配置Maven 创建一个maven的web项目 Maven中引入Tomcat服务器 写项目 总结 配置阿里镜像 具体 ...
- maven生成html单元测试报告,Maven中配置生成单元测试报告配置
对junit单元测试的报告: 1. ------------------------------------------------------- 2. T E S T S 3. ------ ...
- maven的配置流程
为啥要学习maven? 相信读到这篇文章的许多人有过或多或少的项目经历,说到项目,在纯是原生态代码无框架的时候,我们最痛苦的一件事就是导入各种各样的jar包,jar包太多以至于我们很难管理,项目功能稍 ...
- Maven的配置(详细)
Author:折木 Version:9.0.2 文章目录 一.引言 1.1 项目管理问题 1.1.1 繁琐 1.1.2 复杂 1.1.3 冗余 1.2 项目管理方案 二.介绍 三.Maven安装 3. ...
最新文章
- Safari回传值给应用程序
- 双边滤波JAVA代码实现
- 弱网环境测试-Charles学习
- pwnable.tw unexploitable 分析
- 新版征信报告实施之后,信用卡养卡套现真的要凉凉了?
- 物联网数据终端演进之道
- java float什么类型数据类型_Java中的Float和double数据类型
- Java LocalDate类| isSupported()方法与示例
- dart map 转list_Dart 集合类型List Set Map循环forEach map where any every
- MOSS关于Workflow
- Pytorch 的迁移学习的理解
- 面向对象之多态、多态性
- WQ7033开发指南(按键篇)之4.3 三轴加速度传感器SC7A20驱动导入按键流程详解
- android金钱符号变形,使用¥(一个中文字宽)还是¥(半个中文字宽)?
- HTML的游戏分数怎么设置,HTML5《拯救分号》游戏
- 有一个已经排好序的数组,输入一个数,将其插入到数组中,使得数组还是有序的。要求数组元素的值来自初始化
- 基于Azure Percept 避障乐高汽车
- 史莱姆区块查找 超简单java代码
- Ubuntu系列(一):给英特尔NUC重装 ubuntu18.04 的系统
- 如你所愿!一款高效率的学习神器,打开就是永久会员SVIP权限!