红桃视频亚洲,欧美孕妇孕交黑巨大网站,欧美视频网址http://www.aygfsteel.com/ytech/學習JAVA, Hello World!zh-cnWed, 18 Jun 2025 08:30:19 GMTWed, 18 Jun 2025 08:30:19 GMT60一段JSTL Iteration 的代碼http://www.aygfsteel.com/ytech/archive/2005/11/30/21986.htmlJava 的學習之路Java 的學習之路Wed, 30 Nov 2005 08:17:00 GMThttp://www.aygfsteel.com/ytech/archive/2005/11/30/21986.htmlhttp://www.aygfsteel.com/ytech/comments/21986.htmlhttp://www.aygfsteel.com/ytech/archive/2005/11/30/21986.html#Feedback0http://www.aygfsteel.com/ytech/comments/commentRss/21986.htmlhttp://www.aygfsteel.com/ytech/services/trackbacks/21986.html 

 1<%@ page import="java.util.List" %>
 2<%@ page import="java.util.ArrayList" %>
 3<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 4<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 5<html>
 6<head><title>Hello</title></head>
 7
 8<body>
 9<pre>
10    Hello world this is the JSTL Test Page
11</pre>
12<%!
13    public class Person {
14        public Person(String name, String mGender, String address) {
15            this.name = name;
16            this.mGenderr = mGender;
17            this.address = address;
18        }
19
20        public String getName() {
21            return name;
22        }
23
24        public void setName(String name) {
25            this.name = name;
26        }
27
28        public String getGender() {
29            return mGenderr;
30        }
31
32        public void setGender(String mGenderr) {
33            this.mGenderr = mGenderr;
34        }
35
36        public String getAddress() {
37            return address;
38        }
39
40        public void setAddress(String address) {
41            this.address = address;
42        }
43
44        private String name;
45        private String mGenderr;
46        private String address;
47
48    }
49
50
%>
51<%
52
53    ArrayList a = new ArrayList();
54    List b = new ArrayList();
55    a.add(new Person("micas""male""xian"));
56    a.add(new Person("nancy""female""shanghai"));
57    a.add(new Person("nancy""female""shanghai"));
58    a.add(new Person("nancy""female""shanghai"));
59    a.add(new Person("nancy""female""shanghai"));
60
61    b.add("a");
62    b.add("b");
63    b.add("c");
64    b.add("d");
65    b.add("e");
66
67
68    request.setAttribute("persons", a);
69    request.setAttribute("otherInfo", b);
70
%>
71
72<table>
73    <c:forEach items="${persons}" var="p" varStatus="status">
74        <tr><td>${otherInfo[status.index]}</td><td>${status.index}</td><td>${p.name}</td><td>${p.address}</td>
75            <td>${p.gender}</td></tr>
76    </c:forEach>
77</table>
78
79
80</body>
81</html>


Java 的學習之路 2005-11-30 16:17 發表評論
]]>
轉發: J2EE1.4新特性之Servlet2.4新特性 http://www.aygfsteel.com/ytech/archive/2005/11/24/21201.htmlJava 的學習之路Java 的學習之路Wed, 23 Nov 2005 20:08:00 GMThttp://www.aygfsteel.com/ytech/archive/2005/11/24/21201.htmlhttp://www.aygfsteel.com/ytech/comments/21201.htmlhttp://www.aygfsteel.com/ytech/archive/2005/11/24/21201.html#Feedback0http://www.aygfsteel.com/ytech/comments/commentRss/21201.htmlhttp://www.aygfsteel.com/ytech/services/trackbacks/21201.html
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=125&threadID=13086 

在J2EE1.4最新的Servlet 2.4版中,加入了一些新的功能,下面我們介紹其中主要的常用功能。

1、XML Schema定義Web查詢部署描述文件

Servlet 2.3之前的版本使用DTD作為部署描述文件的定義,其web.xml的格式為如下所示:

<?xml version="1.0" encoding="IS0-8859-1"?>
<!DOCTYPE web-app
    PUBLIC "-//sunMicrosystems,Inc.//DTD WebApplication 2.3f//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.3.dtd">
    <web-app>
     .......
    </web-app>



Servlet 2.4版首次使用XML Schema定義作為部署描述文件,這樣Web容器更容易校驗web.xml語法。同時XML Schema提供了更好的擴充性,其web.xml中的格式如下所示:

<?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
          xmlns:workflow="http://www.workflow.com"
          xmins:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    .........
    </web-app>



雖然上面顯示兩個版本的開頭幾行有差別,Servlet 2.4版程序web.xml中Web構件的設置方法和Servlet 2.3版大致相同。

2、Servlet Request監聽器

Servlet 2.4版在事件監聽器中加入了ServletRequest監聽器,包括:ServletRequestListener,ServletRequestAttributeListener和其他相關類。這些類可以用來管理和控制與ServletRequest動作有關的事件。下面的程序顯示了一個典型的ServletRequest監聽器的結構。

import javax.setvlet.ServletContext;
    import javax.servlet.ServletRequestListener;
    import javax.servlet.ServletRequestAttributeListener;
    import javax.servlet.http.HttpServletRequest;
    import iava.io.*;
    import java.util.Locale;
    public final class RequestListener  implements   SerVletRequestListener,
    ServletRequestAttributeListener,ServletContextListener{
        ........
public void requestlnitialized(javax.servlet.ServletRequestEvent event){
        ........
        }
public void attributeAdded(javax.servlet.ServletRequestAttributeEvent event){
        ........
        }
public void attributeRemoved(javax.servlet.ServletRequestAttributeEvent event){
        ........
        }
public void attributeReplaced(javax.servlet.ServletRequestAttributeEvent event){
        ........
        }
public void attributeDestroyed(javax.servlet.ServletRequestAttributeEvent event){
       ........
       }
    }



3、 Request Dispatcher變化

Servlet 2.4版的Web程序增強了filter和request dispatcher的配合功能,這樣過濾器可以根據請求分發器(request dispatcher)所使用的方法有條件地對Web請求進行過濾。編程者可以通過在web.xml中使用元素設定過濾器作用的條件(下圖1):




圖1 設定元素的過濾器


·只有當request直接來自客戶,過濾器才生效,對應為REQUEST條件。

·只有當request被一個請求分發器使用forward()方法轉到一個Web構件時(采用或定義),對應稱為FORWARD條件。

·類似地,只有當request被一個請求分發器使用include()方法轉到一個Web構件時(采用或定義),對應稱為INCLUDE條件。

·只有當request被一個請求分發器使用“錯誤信息頁”機制方法轉到一個Web構件時,對應稱為ERROR條件。

·第五種過濾器作用的條件可以是上面四種條件的組合。

下面的程序中的定義了當客戶請求/icsamples/* 樣式的URL時,Security Filter會被用來過濾請求。但是如果到達URL為/icsamples/* 的Web構件的請求是從一個request dispatcher轉發過來的,這個過濾器不工作。

<filter-mapping>
    <filter-name>Security Filter</filter-name>
    <url-pattern>/icsamples/*</url-pattern>
    </filter-mapping>



如果使用下面的程序設置,在中加入INCLUDE,Security Filter只有在被一個request dispatcher使用include()方法包括RequestRecorderServlet時才會工作。在其他情況(如請求直接從客戶發來,或request dispatcher使用forward方法)下,Security Filter都不會工作。

<filter-mapping>
    <fliter-name>Security Filter</filter-name>
    <servlet-name>RequestRecorderServlet</servlet-name>
    <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>



下面的程序設置定義了Security Filter當request由客戶直接發出或request

dispatcher使用forward方法時能工作。

<filter-mapping>
    <filter-name>Security Filter</filter-name>
    <url-pattern>/icsamples/*</uri-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
    </filter-mapping>



程序例6顯示了一個在中使用的例子。程序7定義的ReqDispatcherServlet根據用戶請求的參數"type",決定如何處理請求。在其中使用了兩個RequestDispatcher(rd,和rd2),它們可以向URL為/admin或/control的servlet轉發請求。當請求被轉發后,適當的過濾器會起作用。過濾器和Web資源的關系可以在web.xml中定義。如果用戶輸入的Web請求參數為“INCLUDE”,ReqDispatcherServlet的RequestDispatcher會調用include 方法,這樣DispatcherFilterIcd會被使用,因為在定義了INCLUDE;如果用戶輸入的 Web請求參數為“ERROR”ReqDispatcherServlet會調用resp.sendError()方法,這樣DispatcherFilterErr會被使用,因為在定義了ERROR。

例6:

<filter-mapping>
    <filter-name>DispatcherFilterIcd</filter-name>
    <url-pattern>/admin</url-pattern>
    <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    <filter-mapping>
    <filter-name>DispatcherFilterErr</filter-name>
    <url-pattern>/errorpage</url-pattern>
    <dispatcher>ERROR</dispatcher>
    </filter-mapping>



例7:

import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;

    public class ReqDispatcherServlet extends HttpServlet
    {
    String dispatchtype;
    public void init(ServletConfig config) throws ServletException
    {
    super.init(config);
    }
    public void service(HttpServletRequest req,HttpServletResponse resp)
    throws ServletException,IOException
    {
    PrintWriter out=resp.getWriter();
    String type="NONE";
    if((req.getParameter("type"))!=null)
    {
    type = req.getParameter("type");
    }
        resp.setContentType("text/html");
        out.println("<HTML>");
        out.println("<BODY>");
out.println("<HR>");
out.println("<p>");
    out.println("ReqDispacherServelt");
    out.println("</P><p>");
    out.println("ServerName:"+req.getServerName()+"ServerPort:"+
req.getServerPort());   
    out.println("</p>");
    RequestDispatcher rd=req.getRequestDispatcher("/admin");
    RequestDispatcher rd2=req.getRequestDispatcher("/control");
    if(type.equals("REQUEST"))
    {
    }
    if(type.equals("FORWARD"))
     {   
    rd.forward(reg,resp);
     }
    if(type.equals("INCLUDE"))
    {
    rd.include(req,resp);
      }
    if(type.equals("ERROR"))
     {
    resp.sendError(404,"Error from ReqDispacherServlet");
     }
    if(type.equals("CONTROL"))
     {
    rd2.forward(req,resp);
     }
    out.flush();
    }
    public voiddestroy()
    {
    System.out.println("ReqDispacherServlet:destroy()");
     }
    }



4、 增強的國際化功能

Servlet 2.4增加了Web程序國際化功能,在web.xml中可以定義網站的字符編碼方式。

<locale-encoding-mapping-list>
    <locale-encoding-mapping>
    <locale>zh</locale>
    <encoding>gb2312</encoding>
    </locale-encoding-mapping>
    </locale-encoding-mapping-list>



當客戶請求了特定語言的Web資源時,servlet程序通過ServletResponse接口的setLocale方法設置一個Web響應的語言屬性。

5、 Login/Logout功能

在Servlet 2.4中增加了logout和login方法方便安全管理。大家可以參考Servlet 2.4的API查看其用法。


Java 的學習之路 2005-11-24 04:08 發表評論
]]>
J2EE Filter 的幾種用法http://www.aygfsteel.com/ytech/archive/2005/11/22/20866.htmlJava 的學習之路Java 的學習之路Mon, 21 Nov 2005 22:30:00 GMThttp://www.aygfsteel.com/ytech/archive/2005/11/22/20866.htmlhttp://www.aygfsteel.com/ytech/comments/20866.htmlhttp://www.aygfsteel.com/ytech/archive/2005/11/22/20866.html#Feedback0http://www.aygfsteel.com/ytech/comments/commentRss/20866.htmlhttp://www.aygfsteel.com/ytech/services/trackbacks/20866.html1。 利用Struts 進行賬戶權限管理


這里只有一個com.micas.utils.test.MyFilter定義,但是在web app啟動實例化了2個instance,分別讀入2個參數。并且,指定了觸發著兩個instance的uri 的mapping.

 1 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
 2          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
 4          version="2.4">
 5 
 6     <servlet>
 7         <servlet-name>action</servlet-name>
 8         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
 9         <init-param>
10             <param-name>config</param-name>
11             <param-value>/WEB-INF/struts-config.xml
12             </param-value>
13         </init-param>
14     </servlet>
15 
16     <!-- Action Servlet Mapping -->
17     <servlet-mapping>
18         <servlet-name>action</servlet-name>
19         <url-pattern>*.do</url-pattern>
20     </servlet-mapping>
21 
22 
23     <display-name>pogo</display-name>
24 
25     <filter>
26         <filter-name>patGeneral</filter-name>
27         <filter-class>com.micas.utils.test.MyFilter</filter-class>
28         <init-param>
29             <param-name>role</param-name>
30             <param-value>general</param-value>
31         </init-param>
32     </filter>
33 
34     <filter>
35         <filter-name>patManager</filter-name>
36         <filter-class>com.micas.utils.test.MyFilter</filter-class>
37         <init-param>
38             <param-name>role</param-name>
39             <param-value>manager</param-value>
40         </init-param>
41     </filter>
42 
43     <filter-mapping>
44         <filter-name>patManager</filter-name>
45         <url-pattern>/view/pat/manager/*</url-pattern>
46     </filter-mapping>
47 
48     <filter-mapping>
49         <filter-name>patGeneral</filter-name>
50         <url-pattern>/view/pat/general/*</url-pattern>
51     </filter-mapping>
52 
53 
54 </web-app>

MyFilter 代碼如下:
 1 package com.micas.utils.test;
 2 
 3 
 4 import javax.servlet.Filter;
 5 import javax.servlet.FilterChain;
 6 import javax.servlet.FilterConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.ServletRequest;
 9 import javax.servlet.ServletResponse;
10 import javax.servlet.http.HttpServletRequest;
11 import java.io.IOException;
12 
13 
23 public class MyFilter implements Filter
24 {
25     private String role;
26 
27     public void init(FilterConfig config) throws ServletException
28     {
29          role = config.getInitParameter("role");
30         System.out.println("role is "+role);
31         config.getServletContext().setAttribute("test",role);
32 
33     }
34 
35     public void doFilter(ServletRequest request, ServletResponse response,
36             FilterChain chain)
37             throws IOException, ServletException
38     {
39 
40         if("manager".equalsIgnoreCase(role)){
41             System.out.println("you are in as a manager");
42         }
43         else if("general".equalsIgnoreCase(role)){
44             System.out.println("you are in as general");
45         }
46         else{
47             System.out.println("something not right");
48         }
49         HttpServletRequest hRequest = (HttpServletRequest)request;
50         System.out.println("the file sends the request is "+hRequest.getRequestURI());
51         chain.doFilter(request, response);
52     }
53 
54     public void destroy()
55     {
56     }
57 }
58 


Java 的學習之路 2005-11-22 06:30 發表評論
]]>
Struts 的幾種Actionhttp://www.aygfsteel.com/ytech/archive/2005/11/22/20864.htmlJava 的學習之路Java 的學習之路Mon, 21 Nov 2005 22:20:00 GMThttp://www.aygfsteel.com/ytech/archive/2005/11/22/20864.htmlhttp://www.aygfsteel.com/ytech/comments/20864.htmlhttp://www.aygfsteel.com/ytech/archive/2005/11/22/20864.html#Feedback0http://www.aygfsteel.com/ytech/comments/commentRss/20864.htmlhttp://www.aygfsteel.com/ytech/services/trackbacks/20864.html
  • 直接轉發
  •  1<?xml version="1.0" encoding="ISO-8859-1"?>
     2
     3<!DOCTYPE struts-config PUBLIC
     4          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
     5          "http://struts.apache.org/dtds/struts-config_1_2.dtd">
     6
     7<struts-config>
     8
     9
    10    <action-mappings>
    11        <action path="/view/pat/general/test2" forward="/view/pat/test2.jsp" />
    12        <action path="/view/pat/manager/test1" forward="/view/pat/test1.jsp" />
    13        <action path="/view/pat/general/test3" parameter="/view/pat/test2.jsp" type="org.apache.struts.actions.ForwardAction">
    14        </action>        
    15    </action-mappings>
    16
    17</struts-config>
    18

    11,12 行,簡單的寫法,直接將請求/view/pat/manager/test1.do 轉發至/view/pat/test1.jsp
    13, 也是一種標準寫法。


    ===未完待續

    Java 的學習之路 2005-11-22 06:20 發表評論
    ]]>
    使用IntelliJ調試JSPhttp://www.aygfsteel.com/ytech/archive/2005/11/11/19293.htmlJava 的學習之路Java 的學習之路Fri, 11 Nov 2005 06:41:00 GMThttp://www.aygfsteel.com/ytech/archive/2005/11/11/19293.htmlhttp://www.aygfsteel.com/ytech/comments/19293.htmlhttp://www.aygfsteel.com/ytech/archive/2005/11/11/19293.html#Feedback0http://www.aygfsteel.com/ytech/comments/commentRss/19293.htmlhttp://www.aygfsteel.com/ytech/services/trackbacks/19293.html 

     
    今天終于成功地使用了IntelliJ 5.0的調試jsp的功能,以后再也不用在jsp頁面寫輸出語句來看結果了。
     
    步驟如下:打開遠程的tomcat以調試模式打開:catalina.bat jpda start 注意已經設置好環境變量:
         JPDA_ADDRESS=5050
                    JPDA_TRANSPORT=dt_socket
    然后使用IntelliJ的Run->Config->tomcat server 設置好tomcat 以及調試的端口。
     
    不要使用remote,這個不能調試jsp.
     
    慶祝。


    Java 的學習之路 2005-11-11 14:41 發表評論
    ]]>
    主站蜘蛛池模板: 博乐市| 彰武县| 贵南县| 南江县| 锡林郭勒盟| 宁城县| 天津市| 建始县| 曲沃县| 长宁区| 诸城市| 湘西| 庆安县| 紫云| 泊头市| 交口县| 卢湾区| 长治县| 调兵山市| 洪泽县| 浑源县| 温泉县| 正定县| 甘孜县| 仪征市| 昭苏县| 潼南县| 芦溪县| 普洱| 方城县| 长兴县| 苍溪县| 涟水县| 龙川县| 盘山县| 胶州市| 永修县| 郸城县| 武威市| 宣武区| 乌拉特后旗|