JavaWeb学习 第3章 servlet编程
经过几天时间的努力,终于成功的写出了自己的第一个 Web Project,哈哈哈,以下内容包括了这一章的主要内容,还有一些重要的过程和步骤,以及自己遇到的一些问题,and 自己最后是如何解决的,呵呵呵,记录下来,继续自己的程序人生系列文章,哈哈哈
一:第一个Servlet 程序
1.新建 Java Web Project
Web root folder 的名字不是很重要,在网站部署后,并没有这个文件夹,它是一个虚拟的文件夹,只要心里面知道它是网站的根目录就可以了
Context root url 是指这个网站的上下文路径,例如下面这个就是 http://localhost:[portnumber]/webproject01/....
2. 然后新建一个 Servlet ,放在 包 com.yinger.webproject01 中,新建 方法 doGet()
3. 这时出现的窗口很重要
Servlet Mapping URL 就是在浏览器中输入的地点的映射,这里可以通过 http://localhost:8080/webproject01/servlet/first 来访问这个Servlet 所要显示的东西
Fiel Path of web.xml 这个默认就可以,web.xml 这个文件很重要,用来保存 servlet 的各项相关的信息,名字啊,映射地址啊,参数啊..
4.编写 Servlet 程序,设计出自己要在网页中显示的内容
5.启动 Tomcat (最好是先 将 Myeclipse 中的 Tomcat disable,然后将自己配置好了的Tomcat 添加进去)
6.部署网站 :点击 服务器按钮左边的那个部署按钮
选择了 “Add ”之后,选择要部署到的服务器“finish” 后,看到 成功部署
7. 打开浏览器,呵呵,测试成功了没
哈哈哈,OK!终于看到了自己写的第一个 Servlet!
二:调试方法
以前调试是 设置断点,然后 点右键 选择 “Debug as”,但是 现在不是了,设置好了断点之后,在浏览器中 刷新就可以看到 调试启动了,试图也就变成了调试视图
三:Servlet 获取 Servlet 初始化的参数
例如,在 web.xml 文件中输入
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>GetInitParameterServlet</servlet-name>
<servlet-class>com.yinger.webproject01.GetInitParameterServlet</servlet-class>
<init-param>
<param-name>repeat</param-name>
<param-value>5</param-value>
</init-param>
</servlet>
红的部分就是初始化的参数,有name有value,注意参数是 Servlet 的参数!
要得到这个参数值,就可以在相应的Servlet中使用 this.getInitParameter,而不是使用request.getParameter
否则报错:
最终的结果:
四:Servlet 获取 服务器的参数
调用方法:
public void printContent(HttpServletRequest request,PrintWriter out){
out.println(request.getServerName()+"<br>");
out.println(request.getServerPort()+"<br>");
out.println(request.getServletPath()+"<br>");
out.println(request.getMethod()+"<br>");
out.println(request.getScheme()+"<br>");//Returns the name of the scheme used to make this request, for example, http
out.println(request.getPathInfo()+"<br>"); // Returns any extra path information associated with the URL the client sent when it made this request.
out.println(request.getProtocol()+"<br>");
out.println(request.getContextPath()+"<br>");// Returns the portion of the request URI that indicates the context of the request.
out.println(request.getRemoteAddr()+"<br>"); // 获取 IP 地址
}
输出:
五:获取头信息
这次是通过 request 获取的信息
调用方法:
public void printContent(HttpServletRequest request,PrintWriter out){
Enumeration e = request.getHeaderNames();
String name = "";
out.println("<table>");
while(e.hasMoreElements()){
name = (String)e.nextElement();
out.println("<tr><td>"+name+"</td>");
out.println("<td>"+request.getHeader(name)+"</td></tr>");
}
out.println("</table><br>");
}
输出结果: