简单点 -JSP

B/S结构

Broswer/Server,用浏览器作为软件界面。

C/S结构

Client/Server ,软件界面不在浏览器中。

HTTP协议

协议的作用:协议是用于在两台电脑之间通信的规则。

TCP/IP协议:TCP/IP是一组协议,其中包括了HTTP协议也包括UDP协议。

超文本传输协议,用在浏览器中。例如http://www.baidu.com。

WEB容器

是web程序运行的环境。

JSP

jsp是java服务页。就是吧Java代码写在html中。

JSP的构成
  • 指令,3种。page指令,taglib指令,include指令。用<%@ %>包含住

  • 小脚本 scriptlet,在在html中编写的java代码称为小脚本。小脚本必须以<%开头,以%>结尾

  • Expression表达式,向浏览器输出的内容。<% %>

  • Declare声明,在jsp页面中定义的方法。

  • 注释,HTML注释 。JSP注释,<%-- --%>

JSP执行的过程
  • 翻译

    将JSP文件翻译成Java源文件,在web容器中自动完成。在第一个用户第一次对jsp文件发出请求时完成。tomcat将翻译后的Java类保存在了tomcat的根目录下。翻译后的文件名是 原来的jsp文件名_jsp.java。

  • 编译

    将java源文件编译成字节码文件

  • 运行

    运行解释运行字节码文件,调用_jspService方法,将页面发送给浏览器

​ 第二次运行的时候直接运行。

注意:有时候在修改了jsp文件的情况下,tomcat没有重新编译和翻译,而是运行了修改前的代码。导致修改的jsp没有生效。就时候就要找到Tomcat页面,删除里面的work目录,重新执行让Tomcat重新编译。

请求

请求的报文就是指向服务器发送的所有信息。

  • 状态行

  • 请求报头

  • 空行

  • 请求正文

内置对象

内置对象是指由web容器创建的,在jsp中可以直接使用的对象,这样的对象称为内置对象。

  • web容器new,自己不可以new
  • 内置对象只能在JSP文件中使用
  • JSP的内置对象一共有九个,request,response,out,session,application,page,pageContext,config,exception。
内置对象out

用于向浏览器输出HTML代码·。是JSP的内置对象

注意:System.out.print()是将数据发送到web服务器

out是将数据发送到客户端浏览器。

乱码的解决办法

在获取数据之前设置编码格式,只能解决以post方法提交的中文乱码

request.setCharacterEncoding("utf-8");

get提交乱码的解决办法

  • Tomcat6以前

    通过new String来改变编码格式。

    String course = new String(course.getBytes("iso-8859-1"),"utf-8");
    
  • Tomcat7及其以后,

conf目录下的server.xml配置文件中配置的代码中设置了编码方式。

内置对象response

重定向:就是重新打开一个网页。

实现:response.sendRedirect(url)方法实现。url:就是重定向的地址。

执行过程:

1.web服务器向客户端浏览器发送响应的状态码302,和重定向的地址url.

2.浏览器在获得状态码302和url后,向浏览器url重新发出请求。

重定向一共请求两次。

响应的内容类型

web服务器可以给浏览器响应网页源代码,响应图片,响应下载的文件,响应pdf文件。服务器可以给响应给浏览器中的内容设置类型。

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型

response.setContentType(Sting) String 表示MIME的格式。
response.setContentType("text/html;charset=utf-8")发送网页的源代码
response.setContentType("image/*")发送图片给浏览器,*表示所有图片的格式。
设置响应的编码
response.setCharacterEncoding("utf-8")

中文编码的类型:GBK,2个字节表示一个汉字,

GB2313,2个字节表示一个汉字

urf-8,3个字节表示一个汉字

Big5 大五码,表示繁体字

向浏览器响应的内容

response对象的getWrite()方法返回的PrintWriter对象能够像客户端浏览器发送数据。

PrintWrite out=response.getWriter();
out.print();
内置对象exception

表示异常,在jsp页面中有两种提示错误信息的办法。一种是局部提示,一种是全局提示。

局部提示:

首先设置一个专门提示错误的页面,当其他页面发生错误时,就会跳转到这个页面。由这个页面提示错误。

isErroPagr="true";//指定的页面
errorPag="error.jsp"

缺点:每个页面都要单独设置error属性,很繁琐。

全局提示:

无论是哪一个文件出错,都有统一的一个文件来显示某一错误。

首先指定一个页面是专门显示所有错误的页面。

在web.xml文件中进行全局错误的配置。

<error-page>
    <error-code>404</error>
    <location>/exception/error.jsp</location>
</errorpage>
请求转发

请求转发:就是对一次请求进行一次或多次转发。

实现

request.getRequestDispatcher("userlist.jsp").forward(request,response)

请求转发与重定向的区别:

  • 重定向时浏览器地址栏显示的是最后一次重定向地址的url.请求转发时,浏览器地址栏显示的是第一个请求文件的url.
  • 请求转发时,浏览器界面显示的数据来自于最后转发的url.
  • 重定向是每定向一次就请求一次,请求转发是一次请求,多次转发.
  • equest内置对象是可以存储和获取数据的.

​ request.getParameter()获取的客户端向浏览器提交的数据。

​ request对象本身还可以存储数据,通过调request.setAttribute(key,value)向request对象中存储数据。存储到request对象中的数据还可以被转发到下一个url,在下一个url中可以通过request.getAttribute(key)来获取数据。

请求转发与重定向常见的问题

即写了重定向,又写了请求转发。后运行就会发生错误。重定向后不允许再请求转发,建议在重定向后添加return语句。

cookie

cookie

cookie是客户端浏览器帮助服务端tomcat保存信息的一种机制。这些被保存的信息可以在以后的请求与响应中实现在客户端浏览器与服务端tomcat之间来回传递。

例子:

用户登录后,显示用户上次登录的时间。
//1.服务端向客户端写cookie
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
Cookie cookie=new Cookie("date",date);
response.addCookie(cookie);
//客户从浏览器中读取
Cookie[] cookies=request.getCookies();
if(cookies!=null && cookies.length>0){
	for(int i=0;i<cookies.length;i++){
		if("date".equals(cookies[i].getName())){
			String cookievalue = cookies[i].getValue();
		}
	}
}
cookie的保存问题
  • 临时保存

    cookie是保存到浏览器中的String类型的数据,默认保存到浏览器内存中。

    当浏览器关闭后,cookie就失效了,这种cookie称作临时Cookie。

  • 永久保存

    cookie对象调用了setMaxAge可以设置cookie在浏览器中的存活的时间。单位是秒。

永久的cookie是存储在客户端硬盘上的。

Cookie存储数据的类型

cookie只能存储String类型的数据

哪些网址能够取到Cookie
  • 哪个网址写入了cookie,就只能由哪个网址读回cookie。
  • 也可以设置cookie的域。
cookie.setDomain("http://www.baidu.com")
cookie的路径

当一个项目中有两个数据都要用cookie存储时,这两个cookie的名称就要写不同,除非他们是在不同的项目中的。

如果有相同名称的cookie需要将cookie设置在不同的目录中。通过调用setPath()方法可以设置cookie的路径。

Cookie cookie1=new Cookie("data",老师);
cookie1.setPath("/mvc/teacher");
Cookie cookie2=new Cookie("date",学生);
cookie2.setPath("/mvc/student");
cookie存储汉字

如果cookie中如果存储了汉字,默认就会发生java.lang.IllegalArgumentException异常。

  • 解决的办法 在储存之前将汉字编码,在读取之后再讲汉字进行解码。

    编码:URLEncoder.encode()

    解码:URLDecoder.decode()

cookie的失效

将cookie的最大存活时间设置成0,

cookie.setMaxAge(0)
cookie的安全性

cookie是不安全的,因为他保存在客户端。可以被看见之后修改。所以敏感的数据都不能保存到cookie中。

cookie的使用场景
  • 记住上次的登录时间。
  • 记住用户上次登录的用户名。
  • 猜你喜欢
  • Session

http协议的特点

http是超文本传输协议,文本表示协议,超文本就是有格式的文本。格式表示可以设置文本的文字颜色,文字大小。

特点:是无状态的,无状态的是值协议本身不保存连接信息。每次访问时,http协议不会记录用户访问过的url。为了实现不同页面之间传递信息不依赖于http协议,因此web容器开发了在不同页面间传递信息的对象。具体的办法有

  • cookie
  • session
  • application
  • url传参
  • 表单提交
session

session:是内置对象。是javax.servlet.HttpSession类的对象。

session的几个理解
  • 会话:会话是一段时间,这段时间默认从打开浏览器开始到关闭浏览器为止。
  • 一次会话可以包含多次请求与响应
  • 会话的核心是共享数据
  • session是私有的
在jsp页面中获取session

ession是内置对象,直接写就可以了。

在Servlet中获取session

request对象的getSession()方法可以获取session对象。

session中存储数据的类型

session的setAttribute方法能存储object类型的数据。

session存储数据的位置

session是在服务端存储数据。

session的安全性问题

由于session是存储在服务器内存中的,因此是安全的。

立刻销毁用户在session中存储的数据

调用session对象的invalidate()方法。

session在服务端默认的存储时间

30分钟。

更改seeion默认的储存时间

在web.xml中修改

<session-config>
    <session-timeout>10</session-timeout>
    </session-config>
向session中存储和获取对象
session.setAttribute(String,object)
object obj=session.getAttribute(key)
移除session中存储的数据
session.removeAttribute(key)
Include指令

jsp中指令有三种,分别是page,include,taglib

include:在所有需要登录后才能访问的页面中含入对登录验证的jsp文件就可以实现登录后访问.

<%include file="isLogin.jsp"%>

注意:被含入文件的源代码中不要抛出项目的变量名。否则会抛出错误。

application内置对象

applicaton是jsp的内置对象,对象名application,他是javax.servet.http.ServletContext接口的对象。在jsp页面中直接使用。

在servlet中用request.getSession.getServletContect().

用application,getRealPath("/")返回项目在硬盘上存储的url。

EL 和 JSTL

  • 前端的输出内容都使用EL表达式来代替java代码。前端的基本逻辑使用JSTL来代替。
EL表达式

EL表达式,Express language,简称EL。是用来在前端页面输出内容的。相当于out.print().

  • 只能将四个范围中的数据传输到界面上。
  • 四个范围分别是pageContext,request,session,application.
  • 取值的顺序是从小到大的。
语法格式

¥{express}

express可以是

  • 算数运算
  • 关系运算
  • 逻辑运算
  • 实体对象
JSTL

JSTL是java的标准标签库

用于代替界面上的java编程逻辑,比如代替if语句,switch语句,for语句,out内置对象,定义变量。

在使用前要导入JSTL的jar包,导入JSTL标签库。

核心标签

核心的标签库有

  • set标签

  • out标签 out标签与${}等价

  • remove标签

  • if标签

  • choose when otherwise标签

  • Foreach标签

    格式化标签库

    • FormatNumber标签
    • formatDate标签

四大作用域

他们是共享数据的。分别是pageContext,request,session,application.

  • page能够实现在同一个页面中的数据共享。
  • request实现了一个请求在不同页面间共享数据。
  • session实现了在同一个会话中共享数据。
  • application实现了所有用户所有页面间共享数据。
  • 都是通过调用setAttribute(k,v)来存储数据,用getAttribute(k)来获取数据。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现的网上购物。对于企业来讲,无论是企业之间(B to B),还是企业和客户之间(B to C)的交易,如果能够实现网上交易将大大提高交易速度节约交易成本。 运用JSP技术和数据库原理,基于B/S模式开发了一个网上购物系统。在的系统中,顾客可以很方便的注册成为会员,对商品进行浏览检索,查看商品的详细资料,然后根据各人的喜好购买心仪的商品。系统会自动为顾客生成订单,按照顾客所填写的信息提交订单并发货。 目 录 1 绪论 1 1.1 课题背景 1 1.2 研究意义 1 1.3本课题主要研究内容 2 2 网上购物简介 3 2.1网上购物发展急需解决的问题 5 2.2问题解决方案 5 2.2.1硬件方面 6 2.2.2软件方面 6 3.开发系统用到的语言 9 3.1 JAVASCRIPT介绍 9 3.2 JSP介绍 11 3.3HTML语言介绍: 12 3.4通过JDBC对数据库进行访问 13 4系统需求分析 15 4.1系统需求 15 4.2系统功能 16 5系统设计 17 5.1模块功能设计 17 5.1.1在线购物流程图显示: 18 5.1.2用户注册流程 18 5.1.3用户登陆流程 19 5.1.4购物车流程 20 5.2数据库设计 21 5.2.1 数据库的分析 21 5.2.2 数据库的设计 21 5.2.3 创建数据库脚本 23 •6系统界面实现 25 6.1登录界面的实现 25 6.2商品列表界面的实现 25 6.3 购物车页面显示: 27 6.4操作订单界面显示 28 7系统的测试 29 7.1系统的测试意义 29 7.2测试目的 30 7.3 测试方法 31 7.4 系统功能测试用例 31 7.5 总结 32 8 总结 33 致谢 34 参考文献 35 毕业设计(论文)知识产权声明 37 毕业设计(论文)独创性声明 38 资料来自互联网,给需要做毕业设计的参考借鉴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值