哪些域名不能够做淘宝客网站,查建设公司年度保证金网站,广东万高建设网站,wordpress设置邮件发送JAVA WEB篇2——Servlet
Servlet#xff08;Server Applet#xff09;是Java Servlet的简称#xff0c;称为小服务程序或服务连接器#xff0c;是Java语言编写 的服务器端程序#xff0c;换句话说#xff0c;Servlet就是运行在服务器上的Java类。 Servlet用来完成B/S架构…JAVA WEB篇2——Servlet
ServletServer Applet是Java Servlet的简称称为小服务程序或服务连接器是Java语言编写 的服务器端程序换句话说Servlet就是运行在服务器上的Java类。 Servlet用来完成B/S架构下客户端请求的响应处理也就是交互式地浏览和生成数据生成动态Web内容
1、第一个servlet程序servlet
导入依赖
!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.0/versionscopeprovided/scope/dependency1.1、实现Servlet
public class HelloServlet implements Servlet {Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println(servlet初始化);}Overridepublic ServletConfig getServletConfig() {return null;}Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println(servlet被访问了);}Overridepublic String getServletInfo() {return null;}Overridepublic void destroy() {System.out.println(servlet销毁);}
}?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0servletservlet-namehello/servlet-nameservlet-classHelloServlet/servlet-class/servletservlet-mappingservlet-namehello/servlet-nameurl-pattern/hello/url-pattern/servlet-mapping
/web-app1.2、继承GenericServlet
public class HelloServlet extends GenericServlet {Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println(servlet被访问了);}
}1.3、继承HttpServlet
public class HelloServlet extends HttpServlet {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(servlet被访问了);}
}1.4、Servlet注解
WebServlet(/RuoyrServlet)
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(post);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(get);}
}2、Servlet的生命周期
创建init: 用户第一次访问servlet创建servlet的实例.
销毁destroy: 当项目从服务器移除,或服务器关闭的时候
3、请求参数的获取
方法声明功能介绍String getParameter(String name)以字符串形式返回请求参数的值如果该参数不存在则返回空值String[] getParameterValues( String name)返回一个字符串对象数组其中包含给定请求参数所具有的所有 值如果该参数不存在则返回空值Enumeration getParameterNames()返回包含此请求中包含的参数名称的字符串对象的枚举。如果请 求没有参数则方法返回空枚举Map getParameterMap()返回请求参数的键值对一个键可以对应多个值String getRemoteAddr()返回发送请求的客户端或最后一个代理的IP地址int getRemotePort()返回发送请求的客户端或最后一个代理的端口号String getRequestURI()返回此请求的资源路径信息StringBuffer getRequestURL()返回此请求的完整路径信息String getMethod()返回发出此请求的HTTP方法的名称例如GET、POSTString getQueryString()返回路径后面请求中附带的参数String getServletPath()返回此请求中调用servlet的路径部分
4、响应消息
WebServlet(/RuoyrServlet)
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(post);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(get);response.setCharacterEncoding(UTF8);response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(我已收到请求);}
}5、请求乱码处理
public class RuoyrServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(post);System.out.println(request.getParameter(name));System.out.println(new String(request.getParameter(name).getBytes(ISO-8859-1),UTF8));response.setCharacterEncoding(UTF8);response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.write(我已收到请求);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println(get);}
}6、ServletConfig、ServletContext
?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0servletservlet-namehello/servlet-nameservlet-classHelloServlet/servlet-classinit-paramparam-nameusernaame/param-nameparam-valueadmin/param-value/init-param/servletservlet-mappingservlet-namehello/servlet-nameurl-pattern/hello/url-pattern/servlet-mappingcontext-paramparam-nameusername/param-nameparam-valueruoye/param-value/context-param
/web-apppublic class HelloServlet implements Servlet {Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println(servletConfig.getServletName());System.out.println(servletConfig.getInitParameter(username));ServletContext servletContext servletConfig.getServletContext();EnumerationString attributeNames servletContext.getAttributeNames();while (attributeNames.hasMoreElements()){System.out.println(attributeNames.nextElement());}}Overridepublic ServletConfig getServletConfig() {return null;}Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {}Overridepublic String getServletInfo() {return null;}Overridepublic void destroy() {}
}