Servlet基础
一,部署和访问
eclipse中创建点击新建项目,找到Dynamic Web Project(动态web项目),如果没有就是在other里面,点击next选择自己的版本和tomcat版本,在最后的时候需要进行打勾
接下来就是进行创建servlet程序,点击自己所创建的项目里面,找到src文件,新建servlet,填写包名和类名,在最后需要将取消打勾
下面的doget和dopost是创建他们的类。
创建完成会发现许多的红色波浪线,这是需要将Tomcat里面lib目录下的servlet-api包复制到项目里面,具体位置如下:
现在就可以编写了
只需在doget里面写上:this.doPost(request, response);
dopost里面写上:PrintWriter out =response.getWriter();
out.print(“this servlet is created by eclipse”);
在打开WEB-INF里面的web.xml文档,里面进行编写浏览器访问的虚拟路径,在里面写上:
test01//让下面的name找到
cn.servlet.TestServlet01//具体位置,包名和程序名,中间用.隔开,注意:按住CTRL键点击会跳转到该程序的位置说明可以
现在就可以编写了
只需在doget里面写上:this.doPost(request, response);
dopost里面写上:PrintWriter out =response.getWriter();
out.print(“this servlet is created by eclipse”);
在打开WEB-INF里面的web.xml文档,里面进行编写浏览器访问的虚拟路径,在里面写上:
test01//让下面的name找到
cn.servlet.TestServlet01//具体位置,包名和程序名,中间用.隔开,注意:按住CTRL键点击会跳转到该程序的位置说明可以
</servlet>
<servlet-mapping>
<servlet-name>test01</servlet-name>//通过该name找到上面的name
<url-pattern>/test1</url-pattern>//浏览器访问时的虚拟路径
</servlet-mapping>
最后就只需要配置好Tomcat及把项目添加进去,在启动。‘
在浏览器输入:http://localhost:端口号,默认8080/项目名/虚拟路径
就可以看见浏览器这样显示了
二,servlet多重映射
只需在web.xml程序里面在加上下面的代码就行,这样浏览器用test和test01都可以访问了。
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test01</url-pattern>//虚拟路径名称,与上面不同就行
</servlet-mapping>
三,servletconfig和servletcontext
1,servletconfig
常用方法:
String getInitParameter() 根据初始化参数名返回对应的初始化参数值
Enumeration getInitParameterNames 返回一个Enmeration对象,其中包含了所有的初始化参数名
ServletConfig getServletContext() 返回一个代表web应用的ServletContext对象
String getServletName() 返回servlet名字
在web.xml文件中需要写入
servlet>
<servlet-name>test02</servlet-name>
<servlet-class>cn.servlet.TestServlet02</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>//给他的一个值
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>test02</servlet-name>
<url-pattern>/test2</url-pattern>
</servlet-mapping>
然后新建个名为TestServlet02的servlet文件,在doget里面写入
PrintWriter out =response.getWriter();
ServletConfig con= this.getServletConfig();
String parm =con.getInitParameter("encoding");
out.println("encoding:"+parm);
然后再web里面写入:
<context-param>
<param-name>AAA</param-name>
<param-value>aaa</param-value>
</context-param>
<context-param>
<param-name>BBB</param-name>
<param-value>bb</param-value>
</context-param>
context相当于一个是全局的
之后的输出就为: