1.简述什么是servlet???
答:
解析:Servlet就是一个实现了特定接口或者父类的java类。
Servlet 是一个 Java程序,是在服务器上(Tomcat容器中)运行以处理客户端请求并做出响应的程序.Servlet的职责就是接收客户端的请求并且对请求作出响应.
03.实现Servlet三种方案:
01.Servlet接口:5个方法
init(){
//初始化
}
service(){
//处理请求
}
//泥石流摧毁了整个村庄
destory(){
//销毁
}
getServletConfig(){
//获取Servlet配置信息
}
getServletInfo(){
//获取Servlet相关信息,例如版本作者等。
}
5个方法: init():初始化,只被执行一次
Destory():tomcat关闭的时候执行,释放资源,执行一次
Service():处理客户端请求,并且对客户端请求作出相应
getServletConfig():获取配置
getServletInfo():版本等信息
02.实现GenericServlet抽象类
修改了Servlet类一定要重启服务器,而修改了jsp页面可以不重启
03.实现HttpServlet抽象类
service():调度作用
//如果我们自己的Servlet类继承的是HttpServlet抽象类,那么不用重写父类的service(),service()方法只不过是起到一个调度的作用
doXXX:doPost(HttpServletRequest request,HttpServletResponse response ) doGet()
04.手动实现自己的Servlet
亮点一:
01.Servlet就是运行在服务器端的能够处理客户端请求的一个java类,如果一个
普通类实现了Servlet接口或者是继承自GenericServlet或者继承自HttpServlet,那么该类就变成了一个Servlet
02.如果类实现的是Servlet接口,那么处理请求的就是service()方法
如果类继承的是HttpServlet抽象类, 那么处理请求的是doGet()和doPost()方法,这里
service()只是调度的作用。
06.MVC模式的探讨
mvc:model(模型),view(视图)和 controller(控制器)
01.所有的请求都归结到控制器(Controller),今天的Servlet充当控制器的角色
只做解析请求(拆解request的各个属性)并且给出响应(转发确定交给哪一个jsp页面去渲染视图)
在servlet如何拿到Session对象并给里面set数据.
解析:request.getSession().setAttribute(name, value)
init()和destory()以及service()执行次数问题
重点:servlet中的init()和destory()只会被执行一次,客户端每次访问相应的Servlet类,都会调用一次service()
一下是servlet类中的方法:
package cn.news.servlet.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.news.servlet.entity.news2;
import cn.news.servlet.entity.topic;
import cn.news.servlet.impl.newsdaoimpl;
import cn.news.servlet.impl.topicdaoimpl;
import cn.news.servlet.impl.usersdaoimpl;
public class UserInfoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//登录界面显示新闻信息
newsdaoimpl ndi=new newsdaoimpl();
try {
List<news2> list=ndi.selectnews();
request.setAttribute("list", list);
request.getRequestDispatcher("/index.jsp").forward(request, response);
} catch (Exception e) {
}
//显示新闻类型
topicdaoimpl tdi=new topicdaoimpl();
try {
List<topic> list1=tdi.selecttopic();
request.setAttribute("list1", list1);
} catch (Exception e) {
}
//登录
String oop =request.getParameter("action");
usersdaoimpl udi=new usersdaoimpl();
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
if(oop!=null)
{
if(oop.equals("login")){
try {
boolean logins=udi.login(name,pwd);
if(logins){
request.getSession().setAttribute("name", name);
request.getRequestDispatcher("newspages/admin.jsp").forward(request, response);
}else{
request.getRequestDispatcher("/index.jsp").forward(request, response);
System.out.println("登录失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}else if(oop.equals("logout")){
//注销
request.getSession().removeAttribute("name");
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
}
else
{
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
}
}
这是判断登录,传值,注销的在servlet中的代码,其他的还有我们之前学的JAVA OOP的和在.jsp和web.xml中的代码。
关于这章我们主要弄的就是jsp和servletd的连接,进而连接数据库。希望能明白吧,。。。