标签:pac web.xml 请求 value 使用 generate utf-8 方便 基于
服务器在接收到浏览器的请求后,会自动调用对应的逻辑代码进行请求处理。但是逻辑代码是由程序员编写并放到服务器中,那么服务器怎么知道该怎么调用并调用哪个类和哪个方法来进行请求处理。
程序员在编写代码的时候如果能够按照服务器能够识别的规则进行编写, 浏览器按照指定的规则进行发送请求,那么服务器就可以调用并执行响应的逻辑代码进行请求处理了。
服务器也是一种计算机,只是安装了服务器软件,而服务器软件是由程序员开发出来的容器.(Eg:tomcat服务器就是安装了tomcat容器的计算机,而tomcat容器是java代码编写的,所以要运行tomcat容器,必须配置jdk环境).
狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指 任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。 Servlet 运行于支持 Java 的应用服务器中。从原理上讲,Servlet 可以响应任何 类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服 务器 .
服务器地址:端口号/虚拟项目名 /servlet的别名
浏览器发送请求到服务器,服务器根据请求URL地址中的URI信息在webapps目录下找到对应的项目文件夹, 然后在web.xml中检索对应的servlet,找到后调用并执行 Servlet。
Eg:
1.直接使用@WebServlet("虚拟项目名")配置
package cn.csuft.poorguy; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginView */ @WebServlet("/LoginView") public class LoginView extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String str = (String)req.getAttribute("str"); req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset = utf-8"); resp.getWriter().write("<html>"); resp.getWriter().write("<head>"); resp.getWriter().write("</head>"); resp.getWriter().write("<body>"); resp.getWriter().write("<h1>"+str+"</h1>"); resp.getWriter().write("<form method = ‘get‘ action = ‘login‘>"); resp.getWriter().write("用户名:<input type = ‘text‘ name = ‘name‘ value = ‘‘/>"); resp.getWriter().write("<br/>"); resp.getWriter().write("密码:<input type = ‘text‘ name = ‘pwd‘ value = ‘‘/>"); resp.getWriter().write("<br/>"); resp.getWriter().write("<input type = ‘submit‘ value = ‘login‘/>"); resp.getWriter().write("</form>"); resp.getWriter().write("</body>"); resp.getWriter().write("</html>"); } }
2.通过配置WebRoot下的WebInfo文件夹下的web.xml配置如下(由于容易出错,不推荐直接配置)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>web02</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <!-- 声明Servlet对象 --> <servlet-name>LoginView</servlet-name> <!-- 上面一句指定Servlet对象的名称 --> <servlet-class>cn.csuft.poorguy.LoginView</servlet-class> <!-- 上面一句指定Servlet对象的完整位置,包含包名和类名 --> </servlet> <servlet-mapping> <!-- 映射Servlet --> <servlet-name>LoginView</servlet-name> <!--<servlet-name>与上面<Servlet>标签的<servlet-name>元素相对应,不可以随便起名 --> <url-pattern>/LoginView</url-pattern> <!-- 上面一句话用于映射访问URL --> </servlet-mapping> </web-app>
3.可以通过Myeclipse自动生成web.xml,也可以使用eclipse自动生成注解
创建过程:
右击项目-->New-->Servlet 填写包名和类名
若想添加描述信息-->点击Next 否则-->点击Finish
下面是eclipse自动生成的注解:
package cn.csuft.poorguy; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginView1 */ @WebServlet("/LoginView1") public class LoginView1 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginView1() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
这篇博客主要总结了一下servlet的概念和运行流程,同时说明了三种常用的配置servlet的方法
小白创作,大佬勿喷,欢迎大佬指点
标签:pac web.xml 请求 value 使用 generate utf-8 方便 基于
原文地址:https://www.cnblogs.com/PoorGuy/p/10359235.html