告诉Tomcat服务器那个类是用来处理first请求的
当服务器接收到请求后,根据请求配置去找java类
servlet类的代码如下
package com.example.demo1;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
public class Xuxiservlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 设置请求的编码格式
servletRequest.setCharacterEncoding("utf-8");
// 设置响应的格式和编码
servletResponse.setContentType("text/html;charset=utf-8");
PrintWriter pw =servletResponse.getWriter();
pw.println("我的小程序");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
要完成访问就要配置和部署servlet,有2种方法配置
方法1
在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">
<!-- 用来配置服务器启动时访问的页面-->
<welcome-file-list>
<welcome-file><!-- 写要访问的文件名(如(login.html))-->]</welcome-file>
</welcome-file-list>
<!-- 用来配置请求servlet-->
<servlet>
<!-- 写一个serlet别名-->
<servlet-name>Xuxiservlet<!-- 写一个serlet别名--></servlet-name>
<!--写servlet别名的全称连带着包名 -->
<servlet-class>com.example.demo1.Xuxiservlet</servlet-class>
</servlet>
<!-- 用来配置请求servlet-->
<servlet-mapping>
<!-- 写一个serlet别名-->
<servlet-name>Xuxiservlet</servlet-name>
<!-- 浏览器请求的地址-->
<url-pattern>/Xuxiservlet</url-pattern>
</servlet-mapping>
</web-app>
第一行是一个XML声名,接下来是根源素<wed-app>声明了XML Schema的版本
这个配置中重要的是<servlet>和<servlet-mapping>以及它们的子元素
这个配置文件是怎么工作的呢?
1 首先在浏览器中输入 配置文件中<servlet-mapping>中子元素中取的浏览器地址
<!-- 浏览器请求的地址-->
<url-pattern>/Xuxiservlet</url-pattern>
2接下来会找别名
<!-- 用来配置请求servlet-->
<servlet-mapping>
<!-- 写一个serlet别名-->
<servlet-name>Xuxiservlet</servlet-name>
3找servlet中的别名
<servlet>
<!-- 写一个serlet别名-->
<servlet-name>Xuxiservlet<!-- 写一个serlet别名--></servlet-name>
4找会servlet中的别名的对应包的地址
<!--写servlet别名的全称连带着包名 -->
<servlet-class>com.example.demo1.Xuxiservlet</servlet-class>
</servlet>
通过对应的地址就会访问到编写好的servlet类,完成了访问
这种方法直观,但是一个wed文件不只一个servlet类要访问,所以当多了的时候在到wed.xml中编写的话会造成代码臃肿,一般不推荐
方法2 注解
直接找到Java类中写@WebServlet
package com.example.demo1;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/Xuxiservlet")
public class Xuxiservlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 设置请求的编码格式
servletRequest.setCharacterEncoding("utf-8");
// 设置响应的格式和编码
servletResponse.setContentType("text/html;charset=utf-8");
PrintWriter pw =servletResponse.getWriter();
pw.println("我的小程序");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
这种方法简单号用一行代码就可以解决问题