MyException - 我的异常网
当前位置:我的异常网» Web前端 » javaWeb之手记Servlet

javaWeb之手记Servlet

www.MyException.Cn  网友分享于:2015-08-26  浏览:1次
javaWeb之手写Servlet

1. Servlet:一个Servlet就是一个标准的服务器端应用程序,它可以执行商务逻辑处理HTTP的访问请求。

(1)servlet是运行在服务器端的小型应用程序

(2)需要web容器的支持

(3)java编写

结构:


2. Servlet是基于Request—Response的结构,在服务器端server运行的小的应用程序,可以执行电子商务逻辑通过HTTP协议经浏览器返回。


3. Servlet的编写是基于设计模式中的模板方法模式,只要实现java中的接口javax.servlet.Servlet;javax.servlet.GenicServlet;javax.servlet.http;

4. Servlet处理流程

(1)客户端使用浏览器提交对Servlet调用的Get或者Post,其中Get通常体现在地址栏输入地址或者链接,Post通常体现在通过表单(表单的提交方法使Post);

(2)服务器接收到该请求后,如果该servlet是第一次被调用,则会实例化一个servlet对象;

(3)服务器调用该servlet对象的service()方法;

(4)Servlet产生动态的恢复内容;

(5)服务器发送恢复内容给客户端的浏览器;


5. 手动编写Servlet的步骤

(1)编写Servlet源程序;

(2)建立Web应用程序目录;

(3)编写web.xml文件;

(4)运行Servlet;

6. 手动编写Servlet之实例—采用tomcat服务器

(1)在E:\projects\javaWeb目录(目录自选)下”新建“一个java类文件命名为:HelloServlet.java,编写该servlet源程序

package com.servlet.hello;
import javax.servlet.http.*;
//import javax.servlet.HttpServlet;//两种方式程序编译效率一样

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

public class  HelloServlet extends HttpServlet{
	
	public void doGet(HttpServletRequest request,
		HttpServletResponse response) throws 
		ServletException,IOException {
		//设定返回的内容的类型
		response.setContentType("text/html;charset=utf-8");
		//输出动态内容,这个out对象输出的内容都是输出到浏览器
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>my first servlet.</title>");
		out.println("<body>");
		out.println(new Date());
		out.println("<br>");
		out.println("Welcome to my first Servlet!");
		out.println("</body>");
		out.println("</html>");
		out.flush();
		out.close();//关闭
	}

	public void doPost(HttpServletRequest request,
		HttpServletResponse response) throws 
		ServletException,IOException {
		doGet(request,response);//处理和doGet()方法一样。
	}
	
	
	
}

(2)运行该servlet,在dos命令下(运行cmd),输入如下命令:


说明,因为该HelloServlet.java 是包含在包com.servlet.hello中的所以命令中使用   -d  ,又因为该类中引用了servlet API,所以需要将该资源所在位置添加引用,该资源在服务器tomcat中存在,则引用该servlet-api.jar的路径。运行后出现上图所示,则表示该Servlet运行成功。

(3)建立Web应用程序目录,由于Servlet对于Web应用程序结构要求非常严谨,所以目录结构的建立需要特别注意,首先在某一位置(任意)新建hello文件夹,然后在该文件夹内部新建WEB-INF(必须是这个文件名)文件夹,然后在WEB-INF内部新建classes和lib两个文件夹和web.xml文件。结构如图:(其中web.xml.bak是自动生成的)


结构建立完成后则可以编写web.xml文件了,代码如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>com.servlet.hello.HelloServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/hello.html</url-pattern>
	</servlet-mapping>

</web-app>


代码说明:在该web.xml中,链接地址/hello.html是任意的,可以直接写hello、hello/hello等等。


4. 以上步骤完成后,即可梳理整个Servlet程序,首先将HelloServlet源程序运行成功后生成的文件夹com(位于E:\projects\javaWeb下)移动或复制到刚刚新建的hello/WEB-INF/classes/下,然后将整个hello文件夹移动或者复制到本机tomcat下的webapps文件夹下面(我的所在D:\SoftwareFiles\tomcat6\webapps),这样整个过程就算完成了。

5. 下面开始验证该HelloServlet,开启你的tomcat服务器,成功后,在浏览器中输入网址http://localhost:8080/hello/hello.html (其中第一个hello是servlet-name,第二个是url-pattern),即会出现:



这样即表示本次手写的Servlet可以正确运行,即大功告成了。




文章评论

我是如何打败拖延症的
我是如何打败拖延症的
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员必看的十大电影
程序员必看的十大电影
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
每天工作4小时的程序员
每天工作4小时的程序员
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
编程语言是女人
编程语言是女人
中美印日四国程序员比较
中美印日四国程序员比较
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
老程序员的下场
老程序员的下场
如何成为一名黑客
如何成为一名黑客
漫画:程序员的工作
漫画:程序员的工作
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员的鄙视链
程序员的鄙视链
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
旅行,写作,编程
旅行,写作,编程
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
为什么程序员都是夜猫子
为什么程序员都是夜猫子
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
我的丈夫是个程序员
我的丈夫是个程序员
 程序员的样子
程序员的样子
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
代码女神横空出世
代码女神横空出世
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员都该阅读的书
程序员都该阅读的书
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
10个调试和排错的小建议
10个调试和排错的小建议
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
那些争议最大的编程观点
那些争议最大的编程观点
Java程序员必看电影
Java程序员必看电影
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有