J2EE(八)——myeclipse开发servlet
用myeclipse开发servlet:基础具体在http://www.cnblogs.com/xdp-gacl/p/3760336.html
值得一提的是:如果以前用myeclipse开发了一个servlet,后来不想要了删除了java文件,重新建一个同名servlet的java文件会报已存在错误,因为没有在xml中删除对应代码块.
同一个servlet可以映射到多个URL上,即可以有多个不同的url-pattern和相同的servlet-name和servlet-class.这样访问不同的URL也可以访问到同一个servlet上
Mapping里的url-pattern也可以使用通配符/*或者*.扩展名,如在web.xml上配置
<servlet>
<servlet-name>MyFirstServlet</servlet-name>
<servlet-class>myz.MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyFirstServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
同理<url-pattern>*.do</url-pattern>可得到
如果有<url-pattern>/*</url-pattern>和<url-pattern>/abc/*</url-pattern>那访问localost/abc/kk就会使用第二个<url-pattern>,原理就是,谁长得像就用谁
四、web.xml中对某个配置如下代码
<servlet>
<servlet-name>AcceptUserInfoServlet</servlet-name>
<servlet-class>myServlet.AcceptUserInfoServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
其中 <load-on-startup>1</load-on-startup>表示servlet被init并装载的顺序为1.用于给多个servlet的启动排序
五、有时候新建的servlet有很多注释和不想要的内容,我们可以修改servlet的模板,到\myeclipse10.7\Common\plugins\com.genuitec.eclipse.wizards.xxxx.jar目录下,用解压工具打开这个jar文件,打开templates文件夹,编辑Servlet.java文件到自己想要的模板即可。
六、新建一个servlet,在web.xml的中配置参数,即在<servlet></servlet>中添加:
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
即给该servlet添加了一个属性,属性名为encoding,属性值为utf-8,添加多个属性需添加多个<init-param>。
在servlet的doPost上可以利用该encoding:
String encoding = this.getServletConfig().getInitParameter("encoding");
response.setCharacterEncoding(encoding);
PrintWriter out = response.getWriter();
out.write("encoding= "+encoding);
访问该servlet:
当然,以上只是给一个servlet配置参数,如果要给该web应用下的所有servlet配备参数,需要在servlet节点外添加:
<context-param>
<param-name>time</param-name>
<param-value>23:11</param-value>
</context-param>
如果需要输出该servlet的所有属性值:
String encoding = this.getServletConfig().getInitParameter("encoding");
response.setCharacterEncoding(encoding);
Enumeration names = this.getInitParameterNames();
PrintWriter out = response.getWriter();
while(names.hasMoreElements()){
String name=(String) names.nextElement();
out.print(name+":");
out.println(this.getServletConfig().getInitParameter(name));
}