1、当服务器响应客户端之后,request和response会立即销毁,在客户端去访问服务器的时候就开启Servlet,当Servlet开启之后就会产生request和response。
2、访问Servlet的6种方式:通过地址栏输入网址提交访问(直接在浏览器上写网址访问),表单访问,超链接访问,伪链接访问,函数访问,用Java代码访问(不讲)。
①地址栏输入网址提交访问:http://ip:port/项目名称/user.do<后面可以追加参数,别忘了追加前加一个’?’> ===>其中,user.do也可以写成user.action。
其实就是get方法访问,这种访问方法出现的问题为:乱码,参数在地址栏可以看见且参数大小不能超过255个字符,不安全。
②表单:post提交方式无乱码,以后用表单方式访问时,统统采用post方式提交。
<!-- JSP -->
<body>
<form action="user.do" method="post">
用户名:<input type="text" name="name" /><br />
密 码:<input type="text" name="pwd" /><br />
<input type="submit" value="提交" /><br />
</form>
</body>
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//sql
public class UserServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/html;charset=UTF-8");
String name = request.getParameter("name");// 取表单数据或地址栏参数的方式。
String age = request.getParameter("age");
// if(name!=null) // 解决乱码方式,如果name的值不为空就执行下面的语句,如果为空,就不作任何处理
// {
// name = new String (name.getBytes("ISO-8859-1"),"UTF-8");
// }
System.out.println(name);
request.setAttribute("myname", name);// 通过键“myname”,显示(浏览器取出)值name
request.setAttribute("myage", age);
request.getRequestDispatcher("user.jsp").forward(request, response); // 转发
}
}
3、实际开发中,转发技术用的较多。
request.getRequestDispatcher("user.jsp").forward(request, response); // 转发
4、通过键“name”,显示(浏览器取出)值“小明”。
request.setAttribute("name","小明");
5、取表单数据或地址栏参数的方式:
String name = request.getParameter("name");
String age = request.getParameter("age");
6、可以用${ }表达式,显示参数的内容,例如:${myname} ${myage} <通过键取值>。
request.setAttribute("myname",name);
request.setAttribute("myage",age);
7、多页面跳转<其实是通过Servlet转发>
不通过Servlet进行转发的<这种做法在实际中不用,违背了MVC开发模式,且页面风格、代码风格不统一,难以维护。>
package com.fs.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class StuServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String to = request.getParameter("to");// 取表单数据或地址栏参数的方式。
if("login".equals(to)) {
this.login(request, response);
}else if("main".equals(to)) {
this.main(request, response);
}
}
//转发到main.jsp
private void main(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("main.jsp").forward(request, response);
}
//转发到login.jsp
public void login(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
8、实际中采用MVC开发模式。V显示:jsp,C控制:Servlet
9、会话用对象session<键值对>存储。session对象就是会话对象。只要涉及到登陆的网站就会用上session技术。session和request一样,可以装东西。
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class UserServlet extends HttpServlet {
public int no=100;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
no ++;
String to = request.getParameter("to");
if("login".equals(to)){
this.login(request, response);
}else if("one".equals(to)) {
this.one(request, response);
}
}
private void one(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//转发到one.jsp
request.getRequestDispatcher("one.jsp").forward(request, response);
}
public void login(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
//使用数据验证name与pwd是否正确
if("123".equals(pwd)) {
HttpSession session = request.getSession();
session.setAttribute("username", name);
// request.setAttribute("username", name);
request.setAttribute("no", no+"");
request.getRequestDispatcher("main.jsp").forward(request, response);
}else {
request.setAttribute("inf", "用户名或密码错误!");
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
}
10、用session对象装数据的方式,在存储转发过程中,数据不会丢失,session会一直在。(多线程的时候会在服务器里面产生多个session对象,且在服务器里保存,各个session对象会根据你的(sessionID===>流水号(长整型))信息进行控制,当关闭浏览器的时候session会自动销毁)
11、设置超链接标签:<a></a> ====>主要属性参数:href="...",例如下面的代码
<a href="user.do?to=login">到login.jsp</a>
分享到:
相关推荐
基于jsp_servlet_session完成的图书查询及购物车案例-内含有MySQL数据库 采用三层架构模式进行开发的本案例、重在研究使用session完成购物车功能。
JSP 在servlet中使用session 猜数字
本文对servlet和jsp中的session作了详细的介绍,包括cookie对于开发wed服务程序很有帮助,是对http无状态协议的深入理解
JspServlet session
《Servlet和JSP学习指南》是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《HowTomcat Works》作者)亲自执笔,不仅全面解读Servlet和JSP的最新技术,重点阐述JavaWeb开发的重要编程概念和设计模型,...
Servlet+JSP购物车,典型的session的应用,实现了购物车的基本功能
《servlet和jsp学习指南》是系统学习servlet和jsp的必读之作。由全球知名的java技术专家(《how tomcat works》作者)亲自执笔,不仅全面解读servlet 和jsp 的最新技术,重点阐述java web开发的重要编程概念和设计...
jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 项目描述 帮学妹写的一个简单上机题:jsp+servlet购物车 购物车使用session保存数据 系统退出时,购物车中数据入库。 运行环境 jdk7+tomcat7+...
jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 1、加入购物车时,把数据保存在session中 2、点击系统退出时,购物车中的数据插入到数据库购物车表 3、再次登录时,查询数据库购物车表的数据加载到...
《servlet和jsp学习指南》是系统学习servlet和jsp的必读之作。由全球知名的java技术专家(《how tomcat works》作者)亲自执笔,不仅全面解读servlet 和jsp 的最新技术,重点阐述java web开发的重要编程概念和设计...
第三章集中讨论了JSP和Servlet的数据存储机制,包括Request对象、Response对象、Session对象、Application对象等。此外,本章节还介绍了JSP和Servlet的数据类型、数据转换等。 第四章至第九章涵盖了JSP和Servlet的...
本书共18章:第1章介绍Servlet API和几个简单的Servlet;第2章讨论Session追踪...第16章讨论Servlet/JSP应用程序的部署过程,以及部署描述符中的元素;第17章阐述Servlet 3中的两项新特性;第18章介绍Struts 2的用法。
详见我的blog 一个关于MVC的实例 http: blog csdn net svitter article details 32977439
用Servlet和JSP实现注册登录系统,注册信息存储到session中
北大青鸟Y2 指导学习一 开发基于JSP Servlet JavaBean网上交易系 包括 指导学习课答案 提供给学员的素材 授课素材,PPT 功能全部实现,值得参考 是编程开发 学习参考的好资料
先來看看如何撰寫基本的JSP動態網頁,以及JSP背後運作的機制,JSP事實上也是轉譯為 Servlet,骨子裡還是個Servlet程式。 第一個JSP程式 註解與Quoting Scripting Elements page Directive Element include ...
详细题目描述可参照博客内文章。。。。。。。。。。。。。。。。。。。。。
Servlet+Jsp实现简单的登陆,HttpSession session = request.getSession();
一个超帅的jsp过滤器 ,对登录进行验证
<form method="post" action="result.jsp" name="form1"> <div align="center"> <tbody><tr> 随即生成一个0到100之间的整数,请猜测! <p> <div align="center"> ...