1.mvc的好处
1).各司其职,互不干涉
2).有利于分工合作
3).有利于提高程序的可扩展性与可维护性
2.完成登录失败重定向登录页面,并在登录页面显示提示语 用户名或密码错误
<%
//获取session的标记
Object obj=session.getAttribute("flag");
if(obj!=null){
%>
<div style="text-align:center;color:red">用户名或密码错误</div>
<%
}
session.invalidate();
%>
3.完成登录成功,重定向主页面代码实现。并在主页显示当前登录的用户。
<div class="head-l" style="position:relative;left:750px">
<span style="font-size:15px; color:white;">
当前用户:<%=((User)session.getAttribute("user")).getUname() %></span>
<a id="out" class="button button-little bg-red" href="out">
<span class="icon-power-off"></span> 退出登录</a> </div>
4.用户退出以后要销毁登录的用户信息,并将页面返回登录页面
//获取session
HttpSession hs = req.getSession();
//销毁session
hs.invalidate();
//响应处理结果
//重定向
resp.sendRedirect("登录页面路径");
5.给退出登录按钮添加退出提示语。
<script type="text/javascript">
$(function(){
$("#out").click(function(){
return window.confirm("确定要退出吗?")//return
})
})
</script>
6.在登录页面中添加注册按钮。
<div style="font-size:15px;position:relative;left:330px;top:-20px"><a href="reg.jsp">注册 </div>
7.为注册页面,添加用户性别选项。
<!-- 声明js代码域 -->
<script type="text/javascript">
$(function(){
//给男的添加单击事件
$("#man").click(function(){
//给男span添加样式
$("#manspan").addClass("icon-check");
//将女span样式去掉
$("#womanspan").removeClass("icon-check");
})
//给nv的添加单击事件
$("#woman").click(function(){
//给女span添加样式
$("#womanspan").addClass("icon-check");
//将男span样式去掉
$("#manspan").removeClass("icon-check");
})
})
</script>
<!-- 性别 -->
<div class="form-group">
<div class="label">
<label>性别:</label>
</div>
<div class="field">
<div class="button-group radio">
<label class="button active"> <span class="icon-check"
id="manspan"></span> <input name="sex" value="1" id="man"
type="radio" checked="checked">男
</label> <label class="button active"><span class=""
id="womanspan"></span> <input name="isex" value="0" id="woman"
type="radio">女 </label>
</div>
</div>
</div>
8.在regServlet中完成注册成功和注册失败的代码逻辑,然后运行项目,点击注册观察运行效果。
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
String uname=req.getParameter("uanme");
String pwd=req.getParameter("pwd");
String sex=req.getParameter("sex");
int age=Integer.parseInt(req.getParameter("age"));
String birthday=req.getParameter("birthday");
//处理请求信息
//创建业务层对象
UserService us=new UserServiceimpl();
//处理注册
int i=us.regUserInfoService(uname,pwd,sex,age,birthday);
//获取Session对象
HttpSession hs=req.getSession();
//响应处理结果
//重定向
if(i>0){
//给注册成功添加标记到session中
hs.setAttribute("flag", "regSuccess");
resp.sendRedirect("/14/login.jsp");
}else{
//重定向到注册页面
resp.sendRedirect("/14/reg.jsp");
}
}
9.如何在service方法中实现根据请求动态的调用其功能处理的方法
服务器在接受到服务器发送的请求后,会调用对应的Servlet进行处理,然后调用Servlet中的的Service方法进行处理,我们将不同功能的处理的处理封装成对应的方法,在serrvice方法中实现根据请求动态的调用其功能的处理方法.
10.真实开发过程中,不会每个功能都会创建一个Servlet,但也不会只使用一个Servlet
我们的Servlet不只是一个,一般是一个独立的功能模板一个Servlet。需要将这么Servlet中的service方法中都要将反射代码声明一遍。