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/>"+                "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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);    }}
1 0
原创粉丝点击