JSP servlet基础

来源:互联网 发布:小企业网络解决方案 编辑:程序博客网 时间:2024/05/17 09:25

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模式的探讨

mvcmodel(模型)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的连接,进而连接数据库。希望能明白吧,。。。



0 0