02系统页面创建&系统需求分析
2.2 简答题
2.2.1 根据视频,请写出登录功能的实现思路?
1.浏览器发送请求到jsp或servlet(转发)页面展示登录界面,
2.确认登录时,访问servlet进行转发到相应的service(逻辑处理)层和dao层(数据交互层)
3.将查询结果响应回浏览器
2.2.2 视频中要完成的三个功能需求分别是?、
用户登录
用户注册
用户退出
1.用户点击登录发送请求到UserServlet
* tomcat服务器接收到请求后调用UserServlet中的service方法进行请求处理,并将封存了相关
* 数据的request对象和response对象作为实参传递给service方法
* 2.
* 在UserServlet中调用业务层方法完成登录业务处理
* 3.
* 在业务层方法中调用Dao层方法完成数据库操作
* 4.
* 完成功能跳转
3.2.2 修改登录页面数据提交的action地址
截图作为答案
![895abbd8cfcbe106902e3ad602d8f6d4.png](https://i-blog.csdnimg.cn/blog_migrate/cf03028c931876d27b1ebb3f756af0d4.png)
3.2.3 创建登录Servlet,并在Servlet完成编码设置,已经登录信息的获取的代码的编写,将实现代码粘贴作为答案
// 请求编码格式
req.setCharacterEncoding("utf-8");
// 响应编码格式
resp.setContentType("text/html;charset=utf-8");
// 获取请求数据
String uname=req.getParameter("uname");
String pwd = req.getParameter("pwd");
// 处理请求数据
// 调用业务层的方法
UserService userImpl=new UserServiceImpl();
User user=userImpl.getUserInfo(uname,pwd);
HttpSession session=req.getSession();
if (user!=null) {
session.setAttribute("user", user);
// 登录成功,两次请求的传值
resp.sendRedirect("/project/main.jsp");
}else {
// 登录失败
session.setAttribute("flag","Loginfalse");
// 页面重定向
resp.sendRedirect("/project/login.jsp");
}
// 响应请求结果
3.2.4 修改登录页面中表单中用户名和密码提交的键名,,将修改后的表单代码粘贴作为答案
<div class="panel-body" style="padding:30px; padding-bottom:10px; padding-top:10px;">
<div class="form-group">
<div class="field field-icon-right">
<input type="text" class="input input-big" name="uname" placeholder="登录账号" data-validate="required:请填写账号" />
<span class="icon icon-user margin-small"></span>
</div>
</div>
<div class="form-group">
<div class="field field-icon-right">
<input type="password" class="input input-big" name="pwd" placeholder="登录密码" data-validate="required:请填写密码" />
<span class="icon icon-key margin-small"></span>
</div>
</div>
3.2.5 简述MVC的编程思想及其好处
什么是MVC?
简单的说就是将网站源码分类、分层。
MVC三个字母的含义:
M:Model 模型,负责数据库操作。
V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。
C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。
什么是MVC?
简单的说就是将网站源码分类、分层。
MVC三个字母的含义:
M:Model 模型,负责数据库操作。
V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。
C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。
![d83b1047e2a506e00c28c1b3190207de.png](https://i-blog.csdnimg.cn/blog_migrate/eecdc989b47c3f90b2cf359cca83ed11.jpeg)
6.2.1 简述用户退出的实现思路
添加单机事件,当用户点击时返回登录页面.并清除session
10注册成功提示语&项目问题引入和解决方案
10.1 编程题
10.1.1 根据视频讲解,完成注册成功提示语功能
10.1.2 视频中目前项目存在的问题是什么?、
登录失败和注册成功都会访问login.jsp界面
而我们设定的是当获取的session对象不为空时调用
相应登录失败时的代码,而注册访问时也会调用调用相应
的登录失败的代码
10.1.3 视频中给出的解决方案是什么?
不同页面访问login.jsp时session的值不一样,根据session的值调用不同的显示代码
12.1.5 视频中最后提出的问题是什么?
我们不可能将所有功能写入一个servlet中,会导致代码太过冗余,一般一个独立功能设置一个session,而当servlet过多时,每一个写servlet都要写service方法,又要通过反射获取当前调用的方法.
13-向上抽取BaseServlet类
13.1 编程题
13.1.1 根据视频,完成BaseServlet的创建
13.1.2 根据视频,修改DataServlet继承BaseServlet
然后启动项目重新访问相关功能。
13.1.3 BaseServlet的使用流程是?BaseServlet的抽取和使用:
1,创建Servlet继承BaseServlet即可
2,在自己的servlet中不要声明service方法,他会自动去父类找,所以只要书写请求处理功能即可
3.正常方法我们自己的servlet
注意:
请求必须附带要执行的方法名
14-项目总结和缺陷
14.1 简答题
14.1.1 视频中项目总结的六个内容是?
总结:
1.套用模板进行页面快速构建
在自己的项目中创建jsp文件
然后将模板中的前端相关代码赋值到自己的jsp文件中
将静态资源复制到webRoot下
2.MCVC的开发流程
M:model service dao pojo
V:view jsp js css html
C:controller Servlet
3.Servlet+jsp+jdbc的功能开发流程
1.浏览器发起页面请求给jsp
2.浏览器发起功能请求给servlet,servlet调用service,service进行业务逻辑处理
service调用dao,dao层进行数据库操作(jdbc),dao层将处理结果返回给service
service再将结果返回给servlet,(或者继续请求转发或者重定向到其他Servlet继续处理)
请求转发或者重定向给jsp,jsp做出页面响应
4.request和session作用域的区别
request:请求转发的数据流转的载体
session:重定向的数据流转的载体()
5.浏览器发起请求到服务器请求发起的方式(重点记忆)
非ajax请求 :
from表单提交:action数据提交地址,method:数据提交方式
超链接标签:href:为数据提交地址,可以直接使用?拼接请求数据,类似form表单的get请求方式
Js中的window.location.href 为数据提交地址,可以直接使用?拼接请求数据类似form表单中的get
注意:使用以上请求方式发起的请求,浏览器再接收到响应内容后,会将原有内容覆盖,显示响应结果
6.BaseServlet 的抽取和使用
发射
抽象类
14.1.2 根据视频,项目目前仍然存在的缺陷是?
项目缺陷:
1.再jsp中获取从Servlet流转过来的数据特别麻烦
2.再jsp页面中使用java代码进行逻辑处理书写和阅读极不方便
3.使用session进行数据流转是很方便,但如果session失效,所以依赖session的功能都会出问题
4.响应结果都是覆盖原有内容显示给用户