java 登录 次数_java学习(五)servlet完成登录、更新及浏览次数统计

1.需求及技术分析

登录页面需要完成如下需求:

在页面上输入用户名和密码,提交到服务器上,服务器取用用户名和密码去数据库中查找是否存在该用户。若用户存在,提示登录成功并转接到首页;若不存在,提示用户名或者密码错误。

技术分析:

实现该需求,需要如下技术:表单,servlet,请求(request)和响应(response)。

其中,表单的作用是:

1)收集用户数据;

2)所有的字段要想提交到服务器端必须有Name属性;

3)提交的地址为action

4)请求方式为post

2.servlet

servlet是动态的web开发技术,本质上是运行在服务器端的一个java小程序(类),主要用于处理业务逻辑,生成共台的web内容。

2.1编写一个servlet步骤

1)编写一个类; a)继承HttpServlet; b)重写doGet或者doPost方法;

2)编写配置文件;

a)注册servlet;

b)绑定路径

3)访问

http://主机:端口/项目名/绑定的路径

2.2 接受参数

格式为key=value

String value=request.getParameter("key")

例如:

http://localhost:8080/loginout/hello?username=tom

request.getParameter("username")就可以获取tom的值

2.3 回写内容

response

response.getWriter().print("success";)

如:

resp.getWriter().print("data:"+value);

如果回写的内容中存在中文字符,需要在语句前增加以下内容:

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

resp.getWriter().print("data:"+value);

全部代码如下:

public class RequestServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//接受参数

String value = req.getParameter("username");

//回写数据

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

resp.getWriter().print("data:"+value);

System.out.println(value);

}

}

2.4 servlet生命周期

servlet常用方法有三种:分别为初始化、服务以及销毁三个,如下所示。生命周期详见程序中注释

public class LifeServlet implements Servlet {

/**

* 销毁方法

* 执行者:服务器

* 执行次数:只执行一次

* 执行时机:当servlet被移除或者服务器正常关闭的时候

*/

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public ServletConfig getServletConfig() {

// TODO Auto-generated method stub

return null;

}

@Override

public String getServletInfo() {

// TODO Auto-generated method stub

return null;

}

/**

* 初始化方法

* 执行者:服务器

* 执行次数:一次

* 执行时机 :默认第一次访问的时候

*/

@Override

public void init(ServletConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

/**

* 服务方法

* 执行者:服务器

* 执行次数:请求一次执行一次

* 执行时机:请求来的时候

*/

@Override

public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {

// TODO Auto-generated method stub

}

servlet是单实例多线程的,默认第一次访问的时候,服务器创建servlet,并调用Init实现初始化操作,并调用一次service方法。每当请求来的时候,服务器就会创建一个线程,调用service方法执行自己的业务逻辑。当servlet被移除的时候服务器正常关闭的时候,服务器就会调用servlet的destroy方法实现销毁操作。

2.5 url-pattern配置

配置共有三种方式:

1)完全匹配,必须以"/"开始,如/hello,/a/b/c

2)目录匹配,必须以"/"开始,以'*'结束,例如/a/*,/*;

3)后缀名匹配,以"*"开始,以字符结尾,例如*.jsp,*.do,*.action

优先级:

完全匹配>目录匹配>后缀名匹配

练习:

1.当请求URL为"/abc/a.html","/abc/*"和"/*"都匹配,此时Servlet引擎可以调用/abc/*;

2.当请求URL为"/abc"时,"/abc"和"/*"都匹配,此时Servlet引擎可以调用/abc;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值