怀旧网个人博客网站地址:怀旧网,博客详情:如何运行第一个Tomcat HttpServlet 程序
1、编写一个 Servlet 类

创建一个包

在创建一个类--继承HttpServlet

爆红:原因,没有导入所依赖的包
alt+enter

选着add macen

选着第一个--javax.servlet 这个
然后随便选一个版本即可。

导入包,没报错,就说明成功了

重写父类的doGet方法。
2、编写配置文件映射

打开配文件
加入配置数据:
<?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">
<!-- 配置映射(对应到主机host文件中的实际地址) -->
<servlet>
<!-- 映射名称-可以随意取 -->
<servlet-name>hello</servlet-name>
<!-- 对应到java类的地址 -->
<servlet-class>com.huaijiuwang.servlet.Hello</servlet-class>
</servlet>
<!-- 配置映射(对应到主机host文件中的url地址) -->
<servlet-mapping>
<!-- 对应上面的servlet-name -->
<servlet-name>hello</servlet-name>
<!--访问的时候访问这个路径即可-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3、配置完成,启动项目访问hello路径


访问成功,没有报错,但是其中没有数据,现在取加入数据
加入代码
public class Hello extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.println("<h1>Hello</h1>");
}
}
重新启动查看

效果实现,
4、重新设置访问路径,测试

修改配置文件,并重启

再次访问hello爆粗了,试一下新配置的路径

访问成功输出Hello
5、中文乱码问题解决
在代码中输出中文

查看结果

解决方案:
在文件中配置HttpServletResponse对象,设置响应数据的编码


运行还上乱码,原因前端没有设置响应类型,添加响应类型代码。


乱码问题解决

由于这边可以直接设置编码格式,所以setCharacterEncoding可以不用写了
