首页 > 代码库 > Servlet基础
Servlet基础
首先Servlet的命名源于Server+Applet,它就是一个继承了HttpServlet类的一个普通的java类。
都知道它的作用类似于ASP.NET中的HttpHandler(一般处理程序),不错,在.NET中其实用HTML页+HttpHandler+DAL来开发网站,效率是最高的,而且完全可以实现。因为这样就抛掉了我们传统开发所用的大量服务器控件,用纯的HTML控件开发不需要服务器的解析,当然效率很高。客户端请求发送至HttpHandler,由它与DAL层打交道,获取数据,然后向客户端渲染所需的HTML页。
在java中,早期的网站开发就是用相似的开发模式。即用HTML页+Servlet+DAO来开发网站。Servlet的作用与上面的HttpHandler几乎完全相同。HttpHandler是继承自IHttpHandler的普通类;Servlet是继承自HttpServlet的普通类。它门都通过继承与Http发生了关系,它们的作用都是接收客户端请求--- >拿数据--- >渲染页面。
由上这种开发模式中,可以看出HttpHandler与Servlet都充当了网站三层架构(表现出、业务层、数据层)中的业务层,因为这种开发是有弊端的,所以都没有流行。弊端就是需要最终渲染客户端页面是需要一句一句输出的,这样,编写和修改HTML都会非常不方便。例如:
【用户登录】的HttpHandler:
public class TestHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; //取出请求中的参数username和password string userName = context.Request["username"]; string passWord = context.Request.QueryString["password"]; //定义画表单page的字符串 string html = "<html><head></head><body><form action='TestHandler2.ashx'>用户名:<input type='text' name='username' value=http://www.mamicode.com/'{username}'/>
密 码:{msg}