基于jsp的bbs论坛-(6)java中对servlet的实现
2016-11-28 23:55
417 查看
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
可将
将
此次BBS设计为简单操作,以一种方法建立一个
在此以建立用户登录为例,用户在网页输入账号及密码,点击登录按钮,也即提交了一个表单,
例:
在
用accountDao完成方法函数的调用
使Get方法依旧调用Post方法
两种 HTTP 请求方法:GET 和 POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
获取JSP网页表单传过来的
将
调用相应定义的方法函数(在此为判断正确账号密码的方法),将上述
创建一个
将
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。注意 会话状态仅在支持 cookie 的浏览器中保留。
以及一个
Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
可将
servlet做为网页表单
action的值,可通过
servlet获取web网页传来的表单数据,并交由前面定义的数据库功能函数进行处理,并将处理的结果通过
servlet返回给网页进行动态显示,以及完成前台与后台的动态交互
将
servlet作为前台(网页)与后台(数据库)交互的一个中间接口,前台把值传给
servlet,
servlet通过调用相关方法(即Dao中定义的方法)进行处理,并将结果返回给
servlet,且是前台与后台的唯一接口,只用通过
serlvet才能与后台进行交互
此次BBS设计为简单操作,以一种方法建立一个
servlet,即一个
servlet完成一种交互,也可以通过判断相似的方法将不同的方法放在一个
servlet中,在此为简单选择了一种方法建立一个
servlet
在此以建立用户登录为例,用户在网页输入账号及密码,点击登录按钮,也即提交了一个表单,
servlet从表单中取出用户提交的账号密码,调用前面在Dao中定义的一个判断数据库中是否有该用户正确账号密码的方法,然后通过判断该方法返回的结果进行判断,如果正确则正常登陆,否则提示错误
例:
在
com.itqinxun.servlet包下选择
new一个
servlet,选择的是新建
servlet文件,不是
java文件也不可对
servlet进行复制,因为新建
servlet的时候会自动一些相关配置代码,输入方法名为
Account_loginServlet,点击完成后生成一个
Account_loginServlet.java文件
一、定义通用接口
在servlet自动生成一系列代码后,首先在类中定义一个调用的接口,代码如下:
AccountDao accountDao=new AccountDaoImpl();
用accountDao完成方法函数的调用
二、修改Get方式
在doGet方法中加入
doPost( request, response);
使Get方法依旧调用Post方法
两种 HTTP 请求方法:GET 和 POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
三、读取表单值
通过在doPost中使用
String name= request.getParameter("name"); String pass= request.getParameter("pass");
获取JSP网页表单传过来的
name,
pass(即用户输入的账号和密码)并赋值给java中的
name,
pass
四、创建账号对象
通过使用Account account=new Account(); account.setAccount_name(name); account.setAccount_pass(pass);
将
name,
pass值赋给一个
account实例,因为java是基于对象的。。。。。。
五、调用方法处理
再通过使用Account accountLog=accountDao.loginAccount(account);
调用相应定义的方法函数(在此为判断正确账号密码的方法),将上述
account做为实参传入,与数据库完成交互判断,并将结果返回给
accountLog,则可对
accountLog的值进行判断,判断是否为正确的账号和密码
六、创建session
通过使用HttpSession session = request.getSession();
创建一个
session,以及使用
session.setAttribute("loginSession", accountLog);
将
accountLog值传给名为
loginSession的
session,这样则在网页中可以使用形如:
${loginSession.adminName}取得
accountLog所指向用户的账号名等信息
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。注意 会话状态仅在支持 cookie 的浏览器中保留。
七、页面跳转
最后通过request.getRequestDispatcher("Account_main.jsp").forward(request, response);
以及一个
if语句进行判断,完成调用该
servlet后处理的页面跳转
八、完整代码
package com.itqinxun.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.itqinxun.model.Account;
import com.itqinxun.dao.AccountDao;
import com.itqinxun.dao.impl.AccountDaoImpl;
/**
* Servlet implementation class Account_loginServlet
*/
public class Account_loginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
AccountDao accountDao=new AccountDaoImpl();
/**
* @see HttpServlet#HttpServlet()
*/
public Account_loginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost( request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name= request.getParameter("name"); String pass= request.getParameter("pass");
System.out.println(name+"do Post ......"+pass);
Account account=new Account(); account.setAccount_name(name); account.setAccount_pass(pass);
Account accountLog=accountDao.loginAccount(account);
if(accountLog!=null){
HttpSession session = request.getSession();
session.setAttribute("loginSession", accountLog);//得到一个session,用于记录访问,这样loginSession就是一个对象,在页面中使用如 欢迎${loginSession.adminName}登陆 完成调用
request.getRequestDispatcher("Account_main.jsp").forward(request, response);
}else{
request.getRequestDispatcher("Account_login_fail.jsp").forward(request, response);
}
}
}
相关文章推荐
- 基于jsp的bbs论坛-(6)java中对servlet的实现
- 基于jsp的bbs论坛-(6)java中对servlet的实现
- 基于jsp的bbs论坛-(4)java中对dao的实现
- 基于jsp的bbs论坛-(5)java中对test的实现
- 基于jsp的bbs论坛-(3)java中对model的实现
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
- 基于jsp,JQuery,Servlet,MySQL的小型BBS论坛
- 基于jsp的bbs论坛-(7)jsp网页的实现
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
- 基于MVC 用户登录的实现(JavaBean + Servlet + JSP)
- MyBlog部分模块---基于Servlet+JSP+JavaBean实现登陆注册验证功能
- javaBean+servlet+jsp实现分页效果
- JSP+Servlet+JavaBean实现登录网页设计
- JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能
- 《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始
- JAVA学习提高之---- FileUpload组件实现多文件上传(JSP+SERVLET)实现
- JSP+JavaBean+Servlet实现分页 .
- jsp+servlet+javabean实现ssh的mvc模式
- jsp+servlet+java 实现统计在线人数