什么是Servlet
学习基于MVC模式下的jsp笔记(Servlet)
学习的书籍为:《基于MVC的JSP软件开发案例教程》
用户可以对Servlet进行编码,利用其既有java类的有点,又能在服务器上运行并控制客户端进行交互的特点,将其作为Web程序的流程部分,从而开发Web应用程序的控制器。
·Servlet是一个动态网页,在Web服务器上运行,它有自己的URL;
·Servlet是一个Java类,它负责在服务器中进行处理操作并进行与客户端的交互;
·Servlet负责接受客户的请求,在服务器上运行,将运行的结果返回客户端浏览器,可以通过out.print(“HTML格式或内容”)的形式在浏览器上展示出来
创建一个Servlet程序
1) 创建一个Web项目
2) 在src中定义一个包(servlet)
3) 在包里创建一个Servlet类
4) 在Web.xml中配置该Servlet类【Servlet配置由MyEclipse自动完成,只需对其中的参数框中的数据进行定义】
在Web.xml的Servlet配置中,和标记中分别定义Servlet名及其对应的URL,且两处的要一致,并在指明其对应的Java类。而中就是我们设置的URL
Servlet工作原理与应用
Servlet工作原理
Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容,这个过程为:
(1) 客户端发送请求至服务器
(2) 服务器启动并调用Servlet,并将上述请求信息发送至Servlet
(3) Servlet根据客户端请求生成响应内容并将其传给服务器。响应内容动态生成,其内容通常取决于客户端的请求
(4) 服务器将响应返回客户端
Servlet生命周期
实例化:Servlet容器创建Servlet实例,用于在发送的请求和响应之间提供网络服务
初始化:Servlet加载后,会对它进行初始化,同时创建一个“请求”对象和一个“响应”对象,分别处理客户端请求和响应客户端请求。该容器调用init()方法,可以设置如数据库连接参数,建立JDBC链接,或是建立对其他资源的引用
服务:如果请求Servlet,则容器调用service()方法
销毁:销毁Servlet实例,调用destroy()方法
Servlet应用
Servlet的特定适合作为JavaWeb开发的“控制器”。其控制逻辑代码可放到其服务(service()方法)的doGet()或doPost()方法中。
Servlet作为控制器可以完成以下操作:
(1) 从request对象中获取界面中传递的参数
(2) 调用逻辑处理事件,并获取操作结果
(3) 通过response对象返回结果到界面,或跳转到某界面
▲将控制的jsp改为Servlet的修改思路:
保留表现层jsp;
创建一个Servlet,配置其URL,并将对应jsp文件中的<% %>内的代码放到doPost()或doGet()方法中
再将表现层对应跳转地址改为Servlet地址(后缀一般使用.do、.to)
▲Servlet内汉字乱码问题:
Request.setCharacterEncoding(“GBK”);
或者
Name=new String(name.getBytes(“ISO-8859-1”),”GB2312”);