项目需求:
实现用户登录
实现用户退出
实现用户注册
功能分析:
用户登录:
根据用户名和密码查询用户信息。查到则登录成功,查不到则登录失败。
用户退出:
销毁session
用户注册:
将用户注册信息插入数据库
数据库设计:
用户表:t_user
用户id uid
用户名 uname
用户密码 pwd
用户性别 sex
用户年龄 age
出生日期 birthday
SQL语句设计:
用户登录
select * from t_user where uname=? and pwd=?
用户注册
insert into t_user values(default,?,?,?,?,?)
代码实现:
略
问题:
现在我们一个请求或者一个独立的业务逻辑都单独进行一个Servlet的创建进行请求处理。
但是一个网站的功能是非常的多,如果每个都创建单独的Servlet进行处理,这样造成
Servlet过多。造成资源浪费。
解决:
服务器在接收到浏览器发送的请求后,会调用对应的Servlet进行请求处理。
然后调用Servlet中的Service方法进行处理。
我们将不同功能的处理封装成对应的方法。
在service方法中调用其对应的功能处理方法进行请求处理。
这样Servlet我们只需要一个。
新的问题:
如何在service方法中实现根据请求动态的调用其功能处理方法呢?
解决:
使用反射。
注意:
请求中需要附带要执行的方法名称。
JSP+Servlet项目总结和期望:
总结:
1、套用模板进行页面快速构建
在自己的项目中创建jsp文件
然后将模板中的前端代码赋值到自己的jsp文件中
将静态资源赋值到webRoot下
2、mvc开发流程
m:model service dao pojo
v:view jsp js css html
c:controller servlet
3、servlet+jsp+jdbc 的开发流程
1、浏览器发起请求直接给jsp
2、浏览器发送功能请求给servlet,servelet调用service.service进行业务逻辑处理,
service调用dao,dao层进行数据库操作(jdbc).dao 层将处理结果返回给service
service再将结果返回给servlet,或者继续转发重定向给其他servlet继续处理,
请求转发或者重定向给jsp,jsp做出页面响应
4、request和session作用域使用
request:请求转发的数据流转载体
session:重定向的数据流转载体(当时session可以解决同一个用户的不同请求的数据库共享问题)。
5、浏览器发送请求到服务器的方式(重点)
from表单提交:action数据提交地址,method,数据提交方式
超链接标签:href:为数据提交地址,可以直接使用?拼接请求数据,类似from表单的get方式
js中的window.location.href:为数据提交地址,可以直接使用?拼接请求数据,类似from表的get
注意:
使用以上请求方式发起的请求,浏览器在接收到响应内容后,会将原有的内容覆盖,显示响应结果
6、baseServlet的抽取使用
反射
抽象类