java--servlet相关类(1)
来源:互联网 发布:连接线共享网络给手机 编辑:程序博客网 时间:2024/05/20 07:34
Servlet简介
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> <title>servlet用法</title> </head> <body> <!-- http://localhost:8080/servletDemo_2 --> <h3>servlet相关类的用法演示</h3> ServletConfig:<a href="config">演示配置文件</a><br/> <!-- Web开发中的4个容器--> 1-Servlet:<br/> 2-ServletContext:<a href="/servletDemo_2/context">演示记录网页--点击率</a><br/> 3-Session:<br/> 4-PageContext: <a href="/servletDemo_2/chart">留言板</a><br/> </body></html>
演示配置文件-ServletConfig:
ServletConfig – 代表Servlet的初始化配置参数。
它包含了Servlet的初始化参数。
它还与ServletContext对像关联。
方法:
getInitParameter //获取单个配置的参数
getInitParameterNames //获取所有配置的名称集合
getServletContext //获取ServletContext(代表本项目)对像
<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name></display-name> <servlet> <servlet-name>ServletConfigDemo</servlet-name> <servlet-class>cn.hncu.servlet.ServletConfigDemo</servlet-class> <!--在Servlet的配置初始化参数:--> <init-param> <param-name>name</param-name> <param-value>Jack</param-value> </init-param> <init-param> <param-name>age</param-name> <param-value>22</param-value> </init-param> </servlet> <servlet> <servlet-name>ServletContextDemo</servlet-name> <servlet-class>cn.hncu.servlet.ServletContextDemo</servlet-class> </servlet> <servlet> <servlet-name>ChatServlet</servlet-name> <servlet-class>cn.hncu.servlet.ChatServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletConfigDemo</servlet-name> <url-pattern>/config</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ServletContextDemo</servlet-name> <url-pattern>/servlet/ServletContextDemo</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ChatServlet</servlet-name> <url-pattern>/chat</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
package cn.hncu.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Enumeration;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServletConfigDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); ServletConfig con=getServletConfig(); //1,已知参数名时:// String name=con.getInitParameter("name");//即可以获取name应的值hncu// String age=con.getInitParameter("age");// out.println("<font color=red>name:</font><font color=green>"+name// +"</font><br/><font color=red>age:</font><font color=green>"+age+"</font>"); //2,未知参数--遍历 Enumeration<String> prams=con.getInitParameterNames(); while(prams.hasMoreElements()){ String key=prams.nextElement(); String value=con.getInitParameter(key); out.println("<font color=red>"+key +":</font><font color=green>"+value+"</font><br/>"); } //注意:和servlet一样,ServletConfig也是单例 ServletConfig con2=getServletConfig(); out.println("con==con2?<font color=red>"+(con==con2)+"</font><br/>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); }}
演示记录网页–点击率
ServletContext – 代表整个Web项目。
每一个web应用,拥有一个唯一的ServletContext,当应用启动时创建,当应用关闭时销毁。
ServletContext可用于在同一个Web项目中,共享资源。
方法:
getContextPath
getInitParameter,getInitParameterNames
getRequestDispatcher(path)
getRealPath –项目的根式.
getResource
getResourceAsStream
setAttribute,getAttribute
ServletContext获取项目的信息:
getContextPath(); //项目名称
getRealPath(“/”); //项目的真实目录
用ServletContext记录网页(注意是指一个页面)的点击量:
用servletContext的setAttribute和getAttribute方法。
package cn.hncu.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ServletContextDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD H8TML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); //获取ServletContext对象--代表整个项目 ServletContext ctx=getServletContext();//这是一个容器(包含多个servlet) //解析// Integer count=Integer.parseInt((String)ctx.getAttribute("count")); //强转 Integer count=(Integer) ctx.getAttribute("count"); if(count==null){ ctx.setAttribute("count", 1);//往代表整个项目的servletContext容器中放一个数据 count=1; }else{ count++;//用户在此应用的任意一个网页上都可以查看该值。 ctx.setAttribute("count", count); } out.println("点击率:"+count); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
留言板
package cn.hncu.servlet;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.swing.JOptionPane;public class ChartServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>留言页面</TITLE></HEAD>"); out.println(" <BODY>"); //获取留言 String msgs=(String) getServletContext().getAttribute("msgs"); //留言者的信息 String msg=request.getParameter("msg"); if(msgs!=null | (msg!=null&&!msg.trim().equals(""))){ if(msg!=null&&!msg.trim().equals("")){ //留言者的信息 String id=request.getRemoteAddr(); SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss"); String time=sdf.format(new Date()); //留言 msg=time+",id="+id+"留言:"+msg; if(msgs!=null){ msgs+= "<br/>"+msg; }else{ msgs=msg; } }// out.println(msgs); getServletContext().setAttribute("msgs", msgs); String div="<div style='border:2px solid red;width:600px;height:300px;overflow:auto'>" +msgs+"</div>"; out.println(div); out.println("<hr/>"); } //留言提交的表单 String form="<form action='chart' method='post'>"+ "留言信息:<input type='text' name='msg'/><br/>"+ " <input type='submit' value='发表'/>"+ "</form>"; out.println(form); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
- java--servlet相关类(1)
- java--servlet相关类(2)
- java--servlet相关类(3)
- java--servlet相关类(4)
- Java Servlet相关操作
- Servlet相关常用类
- Servlet相关常用类
- java web Servlet及其相关类的介绍
- JAVA中得到类相关路径 或 Servlet/JSP相关路径的方法
- java servlet获得客户端相关信息
- java基础:jsp、Servlet相关知识
- java(15)--Servlet中response相关知识
- java(15)--servlet中Request相关知识
- 【每天学一点】JAVA Servlet相关
- 【每天学一点】JAVA Servlet相关02
- JSP/Servlet相关技术1
- servlet相关
- servlet相关
- 关于Lane以及USC-SIPI
- 拆分数字
- 最累的时光,也是最好的时光
- Fragment的使用
- 75.Find Peak Element-寻找峰值(中等题)
- java--servlet相关类(1)
- 多进程和多线程之间的通信方式及通信实现步骤小结
- selinux 基础知识
- [LeetCode-389]Find the Difference
- React(7.2)--React ES6 处理 mixin
- Plus One
- android EventBus
- 网络编程中客户端和服务端通信过程、原理及代码示例
- 图像处理之积分图应用一(半径无关的快速模糊算法)