java wb_JavaWb(一)Servlet

·Servlet的主要功能、运行过程以及生命周期

1.在Servlet技术体系中,用户创建的Servlet是通过HTTPServlet派生的。HTTPServlet的主要方法有init()、destory()、service()、doGet()、doPost()等。

(1)init():在Servlet的生命周期中,init()方法只执行一次,它是在服务器装入Servlet时执行的。常用默认方法,也可以自己重写覆盖。

(2)destroy():destroy()方法只执行一次,在服务器卸载Servlet时执行该方法。常用默认方法,也可以自己重写覆盖。

(3)service():Service方法是Servlet的核心。每当一个客户请求一个HTTPServlet对象时,该对象的service()方法就要被调用。系统将请求(ServletRequest)对象和响应(ServletResponse)对象传给它。

上面三种方法直接继承,不必重写(特殊情况例外)。对于do方法,用户必须重写,处理get或post等请求。

2.Servlet的运行过程

2.1web端服务器接收到客户端访问的请求。

2.2装载并创建一个该Servlet的实例对象。

2.3调用init()方法。

2.4创建两个对象,用于封装HTTP请求消息的HttPServletRequest对象和用于HTTP响应消息的HTTPServletResponse对象。

2.5Tomcat为其创建或者分配线程(第一次请求该Servlet为创建,以后则为分配)。

2.6调用Servlet的service()方法,该方法根据请求类型的不同调用doGet()、doPost()或者其他方法。

2.7WEB应用程序停止或者重启前,Servlet将被卸载,卸载之前调用destory()方法。

3.Servlet的生命周期:加载,实例化,初始化,服务,销毁。Servlet的生命周期不长于容器生命周期。

3.1加载和实例化过程只有一次(调用init()),这个过程可能是Tomcat容器启动时执行,也可能是第一次访问这个Servlet执行,这取决于容器的配置文件。

3.2服务过程(调用service())可进行多次,一次服务过程就是一个Servlet线程的运行过程。service(ServletRequest request,ServletResponse response)方法在每次访问时必然执行。

3.3当容器关闭,执行销毁(destroy()),销毁实例。

doGet()和doPost()方法的区别:

1、安全性:get的安全性低。post的安全性高。

Servlet在web.xml中的配置

7b1d97d5706fa88e32707c2978a28c4f.png

实现一个简单的登录功能。

85302ee95f6c9431603bca7f9fe6a541.png

ce806fc3b978f5cb0bae99083a2c24ed.png

一个简单的登录框。

92ffae332e13729fd5cfc56d0fbc8ce4.png

通过ajax向后端传递数据,返回error登录失败,否则登录成功。

```

public class BookServlet extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html; charset=utf-8");

PrintWriter out = response.getWriter();

String num = request.getParameter("pagenum");

String size = request.getParameter("pageSize");

int pageNum = Integer.parseInt(num);

int pageSize = Integer.parseInt(size);

BookDAO bookDAO = new BookDAOImpl();

Listlist = bookDAO.findBooks(pageNum,pageSize);

JSONArray dataBooks = JSONArray.fromObject(list);

out.write(dataBooks.toString());

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

}

```

servlet代码,前面是请求的方式选择的是post。获取到前端账号密码之后,调用业务逻辑层,UserService中的judgeLog方法。

```

public class UserServiceImpl implements UserService{

public boolean judgeLogin(String userName,String userPwd){

UserDao userDao = new UserDaoImpl();

if(userDao.findUser(userName,userPwd)) {

return true;

}

return false;

}

}

```

UserService实现代码。

f95d50d2f35788abf659c7864731e651.png

dao层实现代码。连接mysql数据库,因为没有用框架,自己写了一个连接数据库的工具类。

65d05b49dda5b53567c77eb1f7001bea.png

最后输入正确的账号密码,提示登录成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值