最近学习上总感觉基础不够,有时间的时候回头打下补丁
发现一个网站http://www.runoob.com/内容挺多的
简单了看了一下servlet有关的资料和文章,只写写简单的处理吧
web服务器本身做不到的两件事:
1. 需要即时页面(发出请求前还不存在的动态创建的页面)
2. 希望数据保存/写在服务器上(写到一个文件或数据库)
通过CGI(编写perl脚本)或Servlet能与服务器通信生成非静态即时页面
缺点:HTML嵌在java中
Servlet基础知识:
1.编写一个java类继承了HttpServlet,重写方法,
2.部署描述文件(web.xml):servlet-name把servlet元素与servlet-mapping绑定,url-pattern是用户的请求名
也可以通过注解@WebServlet(name =
""
, urlPatterns = {
""
})
Servlet生命周期三个核心:init() service() destory()
- 用户在浏览器中输入一个 URL,Web 服务器配置文件确定该 URL 是否指向一个由运行于服务器上的 servlet 容器所管理的 servlet。
- 如果还没有创建该 servlet 的一个实例(一个应用程序只有一个 servlet 实例),那么该容器就加载该类,并将之实例化。
- 该容器调用 servlet 上的
init()
。 - 该容器调用 servlet 上的
service()
,并在包装的HttpServletRequest
和HttpServletResponse
中进行传递。 - 该 servlet 通常访问请求中的元素,代表其他服务器端类来执行所请求的服务并访问诸如数据库之类的资源,然后使用该信息填充响应。
- 如果有必要,在 servlet 的有用生命结束时,该容器会调用 servlet 上的
destroy()
来清除它。 - 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
一般不需要重写
读取表单数据方法:
GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中,GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。
Servlet 使用
doGet()
方法处理这种类型的请求。
另一个向后台程序传递信息的比较可靠的方法是 POST 方法。POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。
请求和响应:
当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的。