Java Web学习笔记——Servlet

来源:互联网 发布:中值滤波算法 matlab 编辑:程序博客网 时间:2024/05/19 18:46

Java Web开发概述

1、程序:胖客户端程序RCP Rich Client Program 桌面程序&瘦客户端程序TCP Thin Client Program Web程序

2、模式:C/S Client/Server模式&B/S Browser/Server模式

3、web技术发展过程:HTML静态页面——CGI(一个请求一个进程)——Servlet(多个请求共享一个进程,动态页面)——JSP(更加动态便捷)


Servlet

1、Java Web目录结构:Web-INF下有web.xml、classes文件夹和lib文件夹

2、Servlet本质上是处理Request,生成Response

3、web.xml参数:好处是无需因需求的变动改写程序重新编译

  • init-param初始化参数:一个servlet独有,getInitParameter(paramName)
  • context-param上下文参数:所有servlet共有,getServletConfig().getServletContext().getInitParameter(paramName)
  • 资源注射@Resource:Tomcat启动时自动将web.xml中配置的信息注射到Servlet中,Java 5.0、Tomcat 6.0以上支持,还可利用此技术注射数据源等非变量信息

4、提交表单信息:通过form提交表单,action为URL(/之后内容),method为get或post

  • get:所提交信息会显示在地址栏中因此不能敏感信息,URL总长度不能超过255个字符
  • post:除可提交大量信息或敏感信息外,还可提交文件,使用二进制上传,客户端需设置FORM格式,服务器端比较复杂,一般用类库(如SmartUpload或Apache Commons Fileupload)实现

5、Servlet生命周期

  • 服务器启动时调用init()初始化一个Servlet对象,之后无论请求多少次Servlet均只有这一个实例,只是多个线程分别执行service()方法,服务器关闭时调用destroy()销毁Servlet对象,因此一些初始化资源和释放资源的代码可放在init()和destroy()中

6、Servlet之间的跳转

  • 转向Forward:最常用的方式,一般是用Servlet处理用户请求,把结果通过request.setAtribute("name", object)放到request中,然后forward到JSP中显示。当使用forward形式跳转时,客户端地址栏显示跳转前的地址,因此forward跳转对客户端是透明的。
    • request.getRequestDispatcher("//").forward(request, response);
  • 重定向Redirect:Redirect形式的跳转是在客户端完成的,客户端第一次请求,服务器返回redirect的地址,客户端自动对改地址做第二次请求
    • response.sendRedirect(String location);
  • 自动刷新Refresh:Refresh可实现一段时间后自动跳转另一页面或自动刷新本页面,原理类似Redirect
    • response.setHeader(time in ms, String url);

7、Servlet不是线程安全的,所以要谨慎考虑类变量的使用。


0 0
原创粉丝点击