<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java綠地(~ming~)

    Java 草地

    常用鏈接

    統計

    最新評論

    Servlet實例應用

    1.雖然可以用:String name=getServletConfig().getServletName()得到Servlet名稱,但可以從GenericServlet直接繼承getServletName方法更方便. Service就不用象doPost激活了

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  response.setContentType("text/html");

            PrintWriter out=response.getWriter(); out.print( this.getServletName( ) );

            Enumeration e=this.getInitParameterNames();//得到多個參數玫舉數組

            while(e.hasMoreElements()){  String key=(String)e.nextElement();

              String value=getInitParameter(key);    out.print(key+"="+value);  }

    ServletContext context=this.getServletContext();//也可從GenericServlet中直接得到

    String path=context.getRealPath("/"); out.print(path); 得到:C:\tomcat\webapps\test\



    2.
    ServletContext得到初始化參數:(從GenericServlet中直接得到)

    public class Context extends HttpServlet {

    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException   { PrintWriter out=response.getWriter();

    Enumeration e=getServletContext().getInitParameterNames();

          while(e.hasMoreElements()){       String key=(String)e.nextElement();

    String value=getServletContext().getInitParameter(key);out.print(key+"="+value);}}}

    ServletContext在web.xml中的配置: <servlet>   <servlet-name>Context</servlet-name>

                                <servlet-class>test.Context</servlet-class>  </servlet>

    不同于<init-param>在Servlet內部配  <context-param><param-name>company</param-name>

                                  <param-value>witbridge</param-value></context-param>

     



    3.使用輸入流訪問資源文件:public class FileAccess extends HttpServlet {

    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {PrintWriter out=response.getWriter();

    FileInputStream fis=new FileInputStream("it315.properties");

    //文件必和tomcat啟動程序同級別目錄: user=root,否則全路徑:c:\\test\\it315.properties

    Properties props=new Properties(); props.load(fis);

    //Properties保存在流中或從流中加載, load從輸入流中讀取屬性列表,getPXX返回String

    out.print(props.getProperty("user")); fis.close();}} //用指定鍵在屬性列表中搜索屬性




    4.使用ServletContext接口訪問資源文件:public class Resource extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out=response.getWriter();

    URL  urlIt315=this.getServletContext().getResource("/it315.properties");

    InputStream ips=this.getServletContext().getResourceAsStream("/it315.properties");

    out.print(urlIt315.toString());Properties props=new Properties();props.load(ips);

    out.print(props.getProperty("dataBase"));   } }//好處:路徑與調試環境無關,只要/

    setHeader(java.lang.String name, java.lang.String value)



    5.HttpServletResponse的應用:響應消息頭:如setContentType(“text/html;charset=””);

    a.SetHeader(自動刷新,URL覆蓋)public class Refresh extends HttpServlet {

        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //response.setHeader("Refresh", "2");

    response.setHeader("Refresh", 1;URL=http://localhost:8080/ ");  } }

    b.禁止瀏覽器緩存顯示動態圖片:public class Cache extends HttpServlet {

        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html ");

        response.setDateHeader("Expires", 0); response.setHeader("Pragma", "no-cache");

        response.setHeader("Cache-Control", "no-cache"); //防止不同瀏覽器支持不同響應頭

            PrintWriter out=response.getWriter();    out.print(Math.random()); }}

    response.setBufferSize(0);int len=response.getBufferSize( );out.print(len);//8192

     



    6.RequestDispatcher(共享數據和URL不變)和response.SendRidirect:

    a.Include:被包含的Servlet程序不能改變響應消息的狀態碼和響應頭,如果他里面存在這樣的語句執行結果將被忽略:public class Included extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

    response.setContentType("text/html;charset=GB2312");//被包含執行時將被忽略

    PrintWriter out=response.getWriter();    out.print("中國"+"<br>");

    out.print("URL"+request.getRequestURI()+"<br>");///test/servlet/Include根目錄下

    out.print("QueryString:"+request.getQueryString()+"<br>");//為null,得到?后面語句

    out.print("Param p1:"+request.getParameter("p1")+"<br>");}} //可以得到參數的

    測試:public class Include extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

    response.setContentType("text/html;charset=GB2312");

            PrintWriter out=response.getWriter();        String china="中國";

    RequestDispatcher rd=this.getServletContext().getRequestDispatcher

    ("/servlet/Included?p1="+china); rd.include(request, response);} }//從Config中繼承

    b.forward:在調用者和被調用者程序中設置響應狀態碼和狀態頭都不會被忽略,URL仍為調用方

    response.setContentType("text/html;charset=GB2312");//也需要設置,轉向全部元素全路徑

    RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/index.jsp");

    rd.forward(request, response);

    c:sendRedirect方法用于生成302響應碼和Location響應頭,從而通知客戶端去重新訪問

    Location響應頭中指定的URL,調用和被調用者之間就不能共同享用request和response對象.

    response.sendRedirect(request.getContextPath()+”/page.jsp”);

     



    7. 為防止用戶在等待過程中多次提交數據:

    <script>  Var isCommitted=false;//通過返回值進行判斷

     Function checkPost(){ if(!isCommitted){isCommitted=true;return true;}

    Else { alert(“不能重復提交表單”);return false;} } </script>

    posted on 2007-07-10 20:28 mrklmxy 閱讀(1741) 評論(1)  編輯  收藏

    評論

    # re: Servlet實例應用[未登錄] 2012-08-21 09:41 aa

    31  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 美国毛片亚洲社区在线观看| 精品熟女少妇AV免费观看| WWW亚洲色大成网络.COM | 亚洲国产情侣一区二区三区| 亚洲免费日韩无码系列 | 亚洲国产精品久久66| 免费成人av电影| 成年女人毛片免费播放视频m| 午夜爽爽爽男女免费观看影院| 日本激情猛烈在线看免费观看| 亚洲人成小说网站色| 67pao强力打造67194在线午夜亚洲| 一本色道久久综合亚洲精品高清 | 色综合久久精品亚洲国产| 最近2018中文字幕免费视频| 一级**爱片免费视频| 亚洲欧美精品午睡沙发| 亚洲午夜精品国产电影在线观看| 亚洲一区综合在线播放| 亚洲一区无码中文字幕| 亚洲爽爽一区二区三区| yy6080亚洲一级理论| 日韩精品人妻系列无码专区免费| 三年在线观看免费观看完整版中文| 麻豆69堂免费视频| 美女被免费视频网站| 无码天堂va亚洲va在线va| 亚洲乱妇老熟女爽到高潮的片| 亚洲AV成人影视在线观看| 亚洲免费闲人蜜桃| 亚洲综合伊人制服丝袜美腿| 亚洲一级在线观看| 91亚洲精品麻豆| 亚洲无人区码一二三码区别图片 | 四虎影院免费在线播放| eeuss免费天堂影院| 又硬又粗又长又爽免费看| 人人爽人人爽人人片av免费| 乱人伦中文视频在线观看免费| 免费人成又黄又爽的视频在线电影| 久久精品国产亚洲av天美18 |