天天看點

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

一、修改Servlet的預設模闆代碼  

  使用MyEclipse建立Servlet時,根據預設的Servlet模闆生成的Servlet代碼如下:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
1 package gacl.servlet.study;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 public class ServletDefaultTemplateCode extends HttpServlet {
12 
13     /**
14      * The doGet method of the servlet. <br>
15      *
16      * This method is called when a form has its tag value method equals to get.
17      * 
18      * @param request the request send by the client to the server
19      * @param response the response send by the server to the client
20      * @throws ServletException if an error occurred
21      * @throws IOException if an error occurred
22      */
23     public void doGet(HttpServletRequest request, HttpServletResponse response)
24             throws ServletException, IOException {
25 
26         response.setContentType("text/html");
27         PrintWriter out = response.getWriter();
28         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
29         out.println("<HTML>");
30         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
31         out.println("  <BODY>");
32         out.print("    This is ");
33         out.print(this.getClass());
34         out.println(", using the GET method");
35         out.println("  </BODY>");
36         out.println("</HTML>");
37         out.flush();
38         out.close();
39     }
40 
41     /**
42      * The doPost method of the servlet. <br>
43      *
44      * This method is called when a form has its tag value method equals to post.
45      * 
46      * @param request the request send by the client to the server
47      * @param response the response send by the server to the client
48      * @throws ServletException if an error occurred
49      * @throws IOException if an error occurred
50      */
51     public void doPost(HttpServletRequest request, HttpServletResponse response)
52             throws ServletException, IOException {
53 
54         response.setContentType("text/html");
55         PrintWriter out = response.getWriter();
56         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
57         out.println("<HTML>");
58         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
59         out.println("  <BODY>");
60         out.print("    This is ");
61         out.print(this.getClass());
62         out.println(", using the POST method");
63         out.println("  </BODY>");
64         out.println("</HTML>");
65         out.flush();
66         out.close();
67     }
68 
69 }      
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  在實際開發中,這些生成的代碼和注釋一般我們都用不到的,每次都要手工删除這些注釋和代碼,很麻煩,是以可以根據開發的實際情況修改Servlet的模闆代碼,改成符合實際開發需求的模闆代碼。下面以MyEclipse 10為例進行說明如何修改Servlet的模闆代碼

  具體步驟如下:找到MyEclipse安裝目錄下的\Common\plugins檔案夾,比如:D:\MyEclipse10\Common\plugins,然後找到com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar這個jar檔案,為了友善查找com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar這個jar檔案,建議使用【SearchEverything】這樣的檔案查找工具,如下圖所示:

  

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  用壓縮工具打開,注意是打開不是解壓這個jar包,如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  打開com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar這個jar檔案後,可以看到裡面有一個templates檔案夾,進入templates檔案夾,可以看到裡面有一個Servlet.java檔案,如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  打開Servlet.java檔案,可以看到裡面的模闆代碼:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
1 #---------------------------------------------#
  2 # <aw:description>Template for Servlet</aw:description>
  3 # <aw:version>1.1</aw:version>
  4 # <aw:date>04/05/2003</aw:date>
  5 # <aw:author>Ferret Renaud</aw:author>
  6 #---------------------------------------------#
  7 
  8 <aw:import>java.io.IOException</aw:import>
  9 <aw:import>java.io.PrintWriter</aw:import>
 10 
 11 <aw:import>javax.servlet.ServletException</aw:import>
 12 <aw:import>javax.servlet.http.HttpServlet</aw:import>
 13 <aw:import>javax.servlet.http.HttpServletRequest</aw:import>
 14 <aw:import>javax.servlet.http.HttpServletResponse</aw:import>
 15 
 16 <aw:parentClass>javax.servlet.http.HttpServlet</aw:parentClass>
 17 
 18 <aw:constructor name="c1">
 19     /**
 20      * Constructor of the object.
 21      */
 22     public <aw:className/>() {
 23         super();
 24     }
 25 
 26 </aw:constructor> 
 27  
 28 <aw:method name="doGet">
 29     /**
 30      * The doGet method of the servlet. <br>
 31      *
 32      * This method is called when a form has its tag value method equals to get.
 33      * 
 34      * @param request the request send by the client to the server
 35      * @param response the response send by the server to the client
 36      * @throws ServletException if an error occurred
 37      * @throws IOException if an error occurred
 38      */
 39     public void doGet(HttpServletRequest request, HttpServletResponse response)
 40         throws ServletException, IOException {
 41 
 42         response.setContentType("text/html");
 43         PrintWriter out = response.getWriter();
 44         out.println(
 45             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 46         out.println("<HTML>");
 47         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
 48         out.println("  <BODY>");
 49         out.print("    This is ");
 50         out.print(this.getClass());
 51         out.println(", using the GET method");
 52         out.println("  </BODY>");
 53         out.println("</HTML>");
 54         out.flush();
 55         out.close();
 56     }
 57 
 58 </aw:method>
 59 
 60 <aw:method name="doPost">
 61     /**
 62      * The doPost method of the servlet. <br>
 63      *
 64      * This method is called when a form has its tag value method equals to post.
 65      * 
 66      * @param request the request send by the client to the server
 67      * @param response the response send by the server to the client
 68      * @throws ServletException if an error occurred
 69      * @throws IOException if an error occurred
 70      */
 71     public void doPost(HttpServletRequest request, HttpServletResponse response)
 72         throws ServletException, IOException {
 73 
 74         response.setContentType("text/html");
 75         PrintWriter out = response.getWriter();
 76         out.println(
 77             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
 78         out.println("<HTML>");
 79         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
 80         out.println("  <BODY>");
 81         out.print("    This is ");
 82         out.print(this.getClass());
 83         out.println(", using the POST method");
 84         out.println("  </BODY>");
 85         out.println("</HTML>");
 86         out.flush();
 87         out.close();
 88     }
 89 
 90 </aw:method>
 91 
 92 <aw:method name="doPut">
 93     /**
 94      * The doPut method of the servlet. <br>
 95      *
 96      * This method is called when a HTTP put request is received.
 97      * 
 98      * @param request the request send by the client to the server
 99      * @param response the response send by the server to the client
100      * @throws ServletException if an error occurred
101      * @throws IOException if an error occurred
102      */
103     public void doPut(HttpServletRequest request, HttpServletResponse response)
104         throws ServletException, IOException {
105 
106         // Put your code here
107     }
108 
109 </aw:method>
110 
111 <aw:method name="doDelete">
112     /**
113      * The doDelete method of the servlet. <br>
114      *
115      * This method is called when a HTTP delete request is received.
116      * 
117      * @param request the request send by the client to the server
118      * @param response the response send by the server to the client
119      * @throws ServletException if an error occurred
120      * @throws IOException if an error occurred
121      */
122     public void doDelete(HttpServletRequest request, HttpServletResponse response)
123         throws ServletException, IOException {
124 
125         // Put your code here
126     }
127 
128 </aw:method>
129 
130 <aw:method name="init">
131     /**
132      * Initialization of the servlet. <br>
133      *
134      * @throws ServletException if an error occurs
135      */
136     public void init() throws ServletException {
137         // Put your code here
138     }
139 
140 </aw:method>
141 
142 <aw:method name="destroy">
143     /**
144      * Destruction of the servlet. <br>
145      */
146     public void destroy() {
147         super.destroy(); // Just puts "destroy" string in log
148         // Put your code here
149     }
150 
151 </aw:method>
152 
153 <aw:method name="getServletInfo">
154     /**
155      * Returns information about the servlet, such as 
156      * author, version, and copyright. 
157      *
158      * @return String information about this servlet
159      */
160     public String getServletInfo() {
161         return "This is my default servlet created by Eclipse";
162     }
163 
164 </aw:method>      
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

 修改該模闆,根據自己的實際情況進行修改,比如

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  删除doGet和doPost裡面的代碼和方法注釋,在doPost方法裡面調用doGet,這是根據實際情況修改成的模闆代碼,修改好之後,儲存,重新開機MyEclipse,使用MyEclipse建立Servlet,此時就是用剛才修改過的模闆進行生成了,生成的代碼如下:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
1 package gacl.servlet.study;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 public class ServletNewTemplateCode extends HttpServlet {
11 
12     public void doGet(HttpServletRequest request, HttpServletResponse response)
13             throws ServletException, IOException {
14 
15     }
16 
17     public void doPost(HttpServletRequest request, HttpServletResponse response)
18             throws ServletException, IOException {
19         doGet(request, response);
20     }
21 
22 }      
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

二、修改jsp的預設模闆

  同樣也是找到com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar這個jar檔案,用壓縮工具打開,進入templates\jsp檔案夾,可以看到MyEclipse自帶的那些jsp模闆,如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  這些jsp模闆是MyEclipse自帶的,我們也可以依樣畫葫蘆,根據平時項目開發中的實際情況,建立一個jsp模闆,然後添加到jsp目錄中,操作步驟如下:

  1、随便複制一個jsp模闆出來(如:Jsp.vtl),複制到系統的桌面或者系統的其他盤進行存儲

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  2、修改複制出來的模闆,使用記事本或者editplus打開Jsp.vtl,可以看到Jsp.vtl的模闆代碼,如下所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
1 #*---------------------------------------------#
 2 # Template for a JSP
 3 # @version: 1.2
 4 # @author: Ferret Renaud
 5 # @author: Jed Anderson
 6 #---------------------------------------------#
 7 *#<%@ page language="java" import="java.util.*" pageEncoding="$encoding"%>
 8 <%
 9 String path = request.getContextPath();
10 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
11 %>
12 
13 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
14 <html>
15   <head>
16     <base href="<%=basePath%>">
17     
18     <title>My JSP '$title' starting page</title>
19     
20     #parse( "templates/jsp/JSPMetaTags.vtl" )
21   </head>
22   
23   <body>
24     This is my JSP page. <br>
25   </body>
26 </html>      
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  這是Jsp.vtl的模闆原始代碼,這個模闆的代碼對于我來說不太符合項目開發中的實際情況,需要修改,修改後的模闆如下:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆
1 #*---------------------------------------------#
 2 # Template for a JSP
 3 # @version: 1.2
 4 # @author: 孤傲蒼狼
 5 #---------------------------------------------#
 6 *#<%@ page language="java" pageEncoding="UTF-8"%>
 7 <!DOCTYPE HTML>
 8 <html>
 9   <head>
10     <title></title>
11   </head>
12   
13   <body>
14     
15   </body>
16 </html>      
MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  為了避免覆寫原來的Jsp.vtl模闆,将修改後的Jsp.vtl模闆重命名,例如重命名成gacl.vtl。

  3.将gacl.vtl模闆複制,然後粘貼到com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar包裡面的templates\jsp檔案夾裡。

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  4、從檢視解壓檔案的界面中,傳回到根目錄(即com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar目錄),找到模版配置檔案templates.xml,如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  同樣,将templates.xml檔案複制到桌面,使用記事本或者editplus打開進行修改。

  修改如下:在<templateLibrary>裡添加如下元素:

1 <template
2         context="com.genuitec.eclipse.wizards.jsp"
3         script="templates/jsp/gacl.vtl"
4         name="gacl-JSP template"/>      

其中:

  1、templates/jsp/gacl.vtl:為新添加的jsp模闆的相對路徑。 

  2、gacl-JSP template:為MyEclipse中所要辨別的模版名稱,MyEclipse建立JSP檔案時通過這個名字來選擇對應的模版。 

  3、context="com.genuitec.eclipse.wizards.jsp"  這個一定要存在,并且跟其他jsp模闆的設定一樣,複制就可以。

templates.xml修改後的内容如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  5、修改完成後,将com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar包中的templates.xml檔案删除掉,然後将修改過後的templates.xml複制,粘貼到com.genuitec.eclipse.wizards_9.0.0.me201108091322.jar包中,如下圖所示:

MyEclipse使用總結——修改MyEclipse預設的Servlet和jsp代碼模闆

  到此,我們的Jsp模闆就算是建立好了。

  6.啟動MyEclipse,然後新建立一個Jsp頁面,此時就可以使用我們自定義的那個Jsp頁面模闆了,如下圖所示: