javaweb jsp整理

jsp, java server page
jsp页面是在服务器上运行的一个页面

动态网页
与后台有数据交互的页面

与其他语言的区别:
jsp 使用java语言进行开发, 安全性高, 适合大型项目, 企业级的文本应用
分布式项目, 服务器集群, hadoop
asp.net 使用c#, .Net平台, 简单易用, 因为不开源, 所以安全性低, 并且不能跨平台
使用.Net开发项目, 最好使用windows系统和sqlserver数据库
php 简单 高效 成本低 开发周期短, 适合中小型企业的web应用开发
php的黄金搭档---(LAMP: linux, Apache, Mysql, PHP)

Tomcat介绍
conf---Tomcat的所有配置
webapps---需要部署的项目
work---Tomcat运行之后编译的文件
lib运行Tomcat服务器所需要的 jar 文件

运行项目的虚拟路径
右键点击项目 --> properties --> web project settings --> context root 更改这个名字就可以修改项目的虚拟路径
改完以后要重新部署项目并且重新启动Tomcat

jsp的组成元素;
1, 指令
page指令
<%@ page ..........%>
language---当前页面使用的语言:java
import---当前页面引入的类库, 默认是啥也不引入
contentType---text/html; charset=‘字符集‘
iso-8859-1是字符集的默认值, 纯英文的字符集
include指令
taglib指令
2, 表达式
<%=变量名%>
3, 脚本
<% 代码内容 %>
4, 声明
<%! 代码声明 %>
5, 注释
可见<!-- -->
不可见<%-- --%>
脚本中使用的注释
/**/, //
?6, 一些静态内容

jsp九大内置对象:
5, response 响应对象
6, page 当前页面对象
7, out 输出流对象
8, exception 异常
9, config ServletConfig/FilterConfig对象

作用域(每一种作用域的生命周期是不一样的):
1, application 全局作用域
2, session 会话作用域
3, request 请求作用域
4, pageContext 页面作用域

优先级(按照生命周期的长短):
application > session > request > pageContext
ai pu ‘lei kei shen>sai‘shen>rui‘kuai ‘si‘t>pei‘zhi‘ kang‘tai‘si‘t

页面中的form表单提交方式:
post:
提交内容不可见, 没有长度限制
get:
有长度限制, 提交内容在地址栏可见

request对象:
request对象是HttpServletRequest这个类的实例
常用方法:
String getParameter(String name)---返回name指定的参数的值
String[] getParameterValues(String name)---返回一个数组, 是包含那个参数名的所有的人
void setAttribute(String, Object)---设置某个作用域中的属性
Object getAttribute(String name)---获取某个作用域中的属性
String getServerName()---返回请求服务器的主机名
String getContentType()---返回请求体的MIME类型
String getprotocol()---返回请求用的协议类型和版本号
int getServerPort()---获取服务器的端口号
int getContentLength()---返回请求体的长度(单位是字节)
String getRemoteAddr()---返回发送此请求的客户端的IP地址
String getRealPath(String path)---返回传入的这个路径的物理路径
String getContextPath()---返回上下文路径

解决request中出现中文乱码的问题
post方式:
通过使用request.setCharacterEncoding("utf-8")来设置
get方式:
通过修改Tomcat服务器中的server.xml配置文件来设置

response对象
response对象是HttpServletResponse的实例
常用方法;
setCharacterEncoding(String name)---设置响应页面使用的字符编码
setContentType("text/html; charset=utf-8")---设置(MIME类型)请求头
response.getWriter().append(String content)---向页面输出一段字符串
out对象的类型是JspWriter, 而response.getWriter()是一个PrintWriter, out对象也可以通过pageContext.getOut()获得, 这两个对象的类型不一样

out.print(null);会抛出异常, PrintWriter.print(null)不会抛出异常

JspWriter是一个抽象类, PrintWriter是一个继承了Writer的普通类

getWriter()方法可以在页面上输出一串字符, out也是一个输出对象, 两者的区别在于, getWriter()方法的执行结果, 总是优先于out对象, 可以使用out.flush()方法, 强行属性缓冲区的内容, 将out对象的输出结果先输出出来

造成这种现象的原因:
out对象实际上对PrintWriter是有依赖的, 他需要先将需要输出的内容存到response的缓冲区里面, 然后等待jsp页面中的out满足一定条件之后, 才会调用输出的方法把内容直接输出到页面上

而PrintWriter是可以直接输出出来的

转发和重定向(面试98%会问)
response.sendRedirect(String location)---请求重定向
客户端行为, 从本质上讲相当于两次请求, 第一次请求的对象不会被保存, 地址栏的Url地址会改变
request.getRequestDispatcher().forward(request, response)---请求转发
服务器行为, 相当于一次请求, 转发后请求对象会被保存, 地址栏url不会改变
举例说明: 办证
Session对象
session指的是用户在进入一个网站开始到关闭浏览器的时间, Tomcai服务器默认的session有效时间是30分钟, 也就是说, 打开一个网站30分钟之内没有动作, session对象同样也会失效
session存在服务器的内存中, 服务器中不同的用户对应的session也是不同的, 所以服务器用来判断当前登录的用户是否是同一个的时候就需要session
session对象是HttpSession的实例
常用方法:
long getCreationTime()---返回session对象创建的时间
String getId()---返回一个sessionid, 是唯一的
void setAttribute()---设置一个属性和一个属性值
Object getAttribute()---获取某个属性的属性值
String[] getValueNames()---以数组的形式获取session对象中所有可用属性的属性名
setMaxInactiveInterval()---设置session经过多长时间之后失效(默认30分钟)
getMaxInactiveInterval()---设置session的失效时间(单位是秒)

session的生命周期:
创建: 当用户第一次访问某个jsp或者servlet的时候, 服务器就会为当前的访问创建一个session, 并生成一个sessionId, 每次客户端向服务器发送请求的时候, 都会将这个sessionId带过去进行验证

活动: 在这个页面的各种活动, 比如通过超级连接打开另一个页面, 或者进行各种增删改查的操作, session失效除非要等到浏览器的相关页面全部关闭, 或者session超时, 当再次访问的时候会创建一个新的session, 但是原来的session还会存在, 只不过没有任何请求再带着那个旧的sessionId让服务器去验证了

销毁:
三种方法可以销毁session
1, 调用session.invalidate()方法
2, session自己过期了
设置session过期时间也可以在web.xml中设置
<session-conf>
<session-timeout>
10<!-- 单位是分钟 ! -->
</session-timeout>
</session-conf>
3, 服务器重新启动

时间: 2024-08-27 09:29:22

javaweb jsp整理的相关文章

JavaWeb:JSP技术基础

JavaWeb:JSP技术 快速开始 介绍 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分.网页开发者们通过结合HTML代码.XHTML代码.XML元素以及嵌入JSP操作和命令来编写JSP. JSP通过网页表单获取用户输入数据.访问数据库及其他数据源,然后动态地创建网页. JSP标签有多种功能,比如访问

javaweb jsp页面上传excel文件

servlet: private static final long FILE_MAX_SIZE = 4 * 1024 * 1024; if (!ServletFileUpload.isMultipartContent(request)) {            System.out.println("失败1");         }           String fileTempPath = this.getServletContext().getRealPath("

JAVAWEB JSP对象

JSP的内置对象: 在JSP页面编程的时候不必声明这些对象就能直接使用的对象 Request:HttpServletRequest类中的,用于得到请求信息 Response:HttpServletResponse类中的,用于得到响应信息 Application:ServletContext中得到web应用运行环境 Config:ServletConfig中用于得到Servlet初始化参数 Session:HttpSession中用来保存每一个用户信息的对象 Page:JSP被翻译成.java文件

java-web,jsp篇

一,jsp: 1,jsp脚本语法: <% java代码 %> 2,jsp声明:在jsp页面中声明变量或方法 语法: <%! java代码 %> 3,jsp表达式:在jsp页面中执行的表达式 语法: <%= 表达式%>注意:表达式不以分号结束 ,二,Servlet与九大内置对象: out对象:从resp.getWriter()方法获得 常用方法有: 1,void println():向客户端打印字符串 2,void clear():清楚缓冲区内容,如果在flush之后调用

JavaWeb——JSP开发1

1.什么是jsp,为什么要使用jsp. 再使用idea创建完一个web工程后,在webapp目录下会生成一个index.jsp 直接编译运行,网站将自动打开这样一个网页: 所以我们可以推测这个index.jsp就是决定这个项目的初始页面的HTML编码的,这里的hello-world是部署Tomcat时设置的. 所以其实JSP就是用来编写HTML编码的一种解决方案,那为什么需要额外的这样一套解决方案呢? 这是我之前对Servlet简单的使用: PrintWriter writer = resp.g

JavaWeb——JSP技术

一.JSP脚本和注释 JSP脚本 1)内嵌Java代码 <%java代码%> // 内部的java代码翻译到service方法的内部 2)直接输出到页面上 <%=java变量或表达式>  // 会被翻译成service方法内部out.print() 3)设置Servlet成员内容 <%!java代码%> // 会被翻译成servlet的成员的内容 JSP注释 1)Html注释: <!--注释内容--> // 可见范围 jsp源码.翻译后的servlet.页面

JavaWeb —— JSP 总结

  JSP总结 静态网页 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是标准的HTML文件,它的文件扩展名是.htm..html  .静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的.静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页. 动态网页 网页文件里包含了程序代码,通过后台数据库与WEB服务器的信息交互,由后台数据库提供实时数据更新和数据查询服务.动态网站体现在网页一般是以asp,jsp

JSP复习整理(二)基本语法

最基础的整理.. 一.语句声明 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.d

选课不再纠结!10个课程搞定Java!

身在茫茫的课程海洋的童鞋们,是不是很迷茫?数百个课程我该学哪个?这个课程质量怎样啊?学院课程小管家整理出了最受欢迎的10个Java类视频课程~迷途中的童鞋们终于不再纠结了!!!10各课程包含了初中高3各阶段,小管家是不是很贴心^_^ 大家有想要的专题欢迎在评论中说明哟,管家会根据需求的情况,进行下一个专题的选择~~~~ (一)  小白进阶必学~ 1.http://edu.51cto.com/course/course_id-4191.html 刘英杰 课程名称:JavaWeb(JSP+servl