jsp(Java Server Pages)

初步了解jsp
java web b/s 浏览器
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用
**Client/Server结构(C/S结构)**是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
在这里插入图片描述

html :展示数据 .html/htm 静态数据
jdbc:
服务器交互: jsp(java server pages) 动态数据 动态技术 .jsp
远程访问:url
http://服务器IP(DNS)/index.html
index.html 欢迎页
应用服务器:远程访问文件html http (超文本传输协议) http1.0 http1.1
位于应用层 短连接(响应结束立即断开)
tomcat :应用服务器 是一个软件 java jdk
******:手动本地资源放在应用服务器 发布部署
404:资源不存在
bin:可执行文件
conf:配置文件
lib:jar
webapps: web applications 程序存放位置
work:
tcp socket
******:利用eclipse自动发布部署程序
1、eclipse启动自已安装的tomcat java EE
2、eclipse自动部署项目 右击服务器 --add
jsp页面元素:

  1. 静态内容:HTML静态文件
  2. 指令: <%@ 开始,以 %> 结束 里面装的是一些生命和导包
  3. 小脚本<% 内容 %> 里面装的是java代码==javaBean
  4. 表达式:<%= 内容 %> 里面装要输出的java 里的内容
  5. 声明: <%!方法 %>
  6. 注释: <!—客户端可以看到 --> html注释
    <%–客户端不能看到–%> java注释

jsp 内置对象

方法具体参考https://blog.csdn.net/u014565127/article/details/78916262
out //用于在html文件中输出数据
request//用于接收数据
response//用于响应 转发 一次请求
session//也可以存储数据 在一个会话中使用 底层也是基于cookie的实现
application//作用范围 在整个服务器的生存阶段 只要服务器不停止那么application就仍然存在

cookies 用于存储数据 如果不设定时间那么生命周期是一次会话 相当于session 如果设定了时间那么就会在时间范文内有效,过期会自动销毁

具体方法和作用

request
String getParameter(String name) 返回name指定参数的参数值;
String[] getParameterValues(String name) 返回包含参数name的所有值的数组
Object getAttribute(String name) 返回指定属性的属性值
RequestDispatcher getRequestDispatcher(String url) 跳转到制定网页 包含request里面的数据 里面的forward对象可以用来转发请求

response
response.sendRedirect(String path); 重定向网页 真实跳转 request 的所有属性会消失 并开始一个新的对象 path 可以是目标地址 也可以是相对路径 也可以是不同主机的其他的url的地址
response.setHeader(“refresh”, “5”); 设置页面定时刷新
response.setHeader(“refresh”, “5;URL=hello.jsp”); 设置页面定时跳转

session 原文链接:https://blog.csdn.net/yjn1995/article/details/90743686
Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。在Servlet中,当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session,并赋予其一个sessionID,发送给客户端的浏览器。以后客户端接着请求本应用中其他资源的时候,会自动在请求头上添加:(Cookie:SESSIONID=客户端第一次拿到的session ID)。这样,服务器端在接到请求时候,就会收到session ID,并根据ID在内存中找到之前创建的session对象,提供给请求使用。
request内置对象中的属性只在当次请求中有效,如果要使属性在客户端跳转后仍然有效就要使用session内置对象了,session内置对象的类型是HTTPSession,
常见的方法有:
public void setAttribute(String name,Object value);保存属性
public Object getAttribute(String name);根据属性名取得值
public void removeValue(String name);根据属性名移除对应的值
public boolean isNew();判断当前用户是否是第一次访问
public void invalidate();销毁当前session,一般用于实现注销功能
public String getId();取得session的编号,和JSESSIONID cookie相同

application
实现用户之间的数据共享
常用方法
void setAttribute(String Key,Object obj) 以key value 的形式保存对象
Object getAttribute(String Key) 通过key获取对象的值
String getRealPath(String path) 返回相对路径的真实路径

cookie
需要注意的是 cookie的使用的时候先需要创建一个cookis对象
cookie newCookie=new Cookie(String Key,String Value);
写入cookies
response.addCookie(newCookie);
读取cookie
cookie[] cookies=request.getCookies();
void setMaxAge(int expiry) 设置cookie的有效期,以秒为单位
void setValue(String value) 在cookie创建后,对cookie进行赋值
String getName() 获取cookie的名称
String getValue() 获取cookie的值
String getMaxAge() 获取cookie的有效时间,以秒为单位

重定向

转发

网页的数据的提交的两种方式
一是、通过表单提交 提交到action 所指向的地址 的request里去
二是、通过地址提交:提交到url所指的地址的request里
跳转的两种方式:
一是:重定向response.senRedirect(“URL”); 不转数据
二是:转发 request.getRequestDispatcher(“ URL”).forward(request,response);传输数据
***扩展: 重定向和转发时 斜杠代表的地址区别

//重定向的方式的话:/MybbsMsg/newMsg.jsp 第一个斜杠代表 的是:8080 因此 直接写path地址是正确的
//但是如果是转发的: 第一个斜杠代表的是项目的根目录,因此 无法访问的。所以 转发需要字符串的额截取 重定向不需要进行字符串的截取

其中 转发的方式 可以转发对象
request.setAttribute(“key”,value); 是以键值对的 方式存储到这个方法中 然后在接收界面通过key就可以接受存在其中的对象
跳转方式的选择:
是否需要数据传输 如果不需要数据传输那么使用重定向的方式
如果需要数据传输那么使用转发的方式
开发模式 mvc (model 、 view 、controllor)
一阶段:展示界面和小代码域在一块 开发
二阶段:mvc分层开发 分为处理页面 展示界面 和db界面
实现验证码
需要一个生成验证码的jsp文件
page contentType=”imge/jpeg”;这个表示以图像的类型
网页上用一个img标签 src链接到imge.jsp这个文件就会自动生成验证码
然后给一个name值 用request 接收 在处理界面和session.getAttribute(“rand”)里面的值进行比较 就可以得到是否验证码输入正确 ,在imge.jsp中 这里生成验证码的值是存在session对象里的rand 对应的值里面的 因此可以使用 rand(KEY)进行获取
四大范围:
都能用setAttribute("", “”)添加变量,getAttribute("")获取变量,对于page,得用pageContext。
page: 在同一个页面有效
request: 在同一个请求里有效 一般请求完毕则失效
session: 在一个会话的声明周期内有效
application: 作用域最大 直到服务器停止才会失效 所有页面共享 但是不宜使用太多 不然服务器负担加重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值