博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP笔记(一)
阅读量:5047 次
发布时间:2019-06-12

本文共 3383 字,大约阅读时间需要 11 分钟。

JavaWeb简介

静态网页和动态网页

    静态网页表现形式是网页内容固定,不会更新,所需技术有HTML,CSS。动态网页表现形式是网页中的内容通过程序动态显示的,自动更新,所需技术有HTML,CSS,数据库技术,至少一门高级编程序言(JAVA,C#,PHP),JavaScript,XML等。主流的动态网页脚本技术(JSP/ASP.NET/PHP)

JSP基础语法

JSP简介

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了在Java当中使用HTML标签。Jsp是一种动态网页技术标准也是JAVASE的标准。JSP和Servlet一样,是在服务器端执行的。

常见动态网站开发技术对比

Jsp:Java平台,安全性高,适合开发大型的,分布式的(比如基于java架构分布式的计算框架hadoop),企业级的web应用程序。(电子银行,网上证劵交易,中国移动,铁路购票)

Asp.net:.Net,简单易学。但安全性以及跨平台性差(微软的一套)。

Php:简单、高效、成本低开发周期短,特别适合中小型企业的web应用开发。(LAMP:linux+Apache+Mysql+PHP)

JSP页面元素构成

指令、表达式、小脚本、声明、注释、静态内容

JSP指令元素

Page指令:通常位于jsp页面的顶端,同时一个页面可以包含多个page指令。

Include指令:将一个外部文件嵌入到当前JSP文件中,同时解析这个页面中的JSP语句。

Taglib指令:使用标签库定义新的自定义标签,在JSP页面中启用定制行为。

Page指令语法:

<%@ page 属性1=“属性值1” 属性2=“属性值1,属性值2”…属性值n=“属性值n”%>

属性

描述

默认值

Language

指定JSP页面使用的脚本语言

Java

Import

通过该属性来引用脚本语言中使用到的类文件

ContentType

用来指定JSP页面所采用的编码方式

text/html,ISO-8858-1

JSP注释

在JSP页面的注释有三种:

HTML的注释<!--html注释-->//客户端可见

JSP的注释<%--html注释--%>//客户端不可见

JSP脚本注释://单行注释和/**/多行注释,客户端不可见

JSP脚本

在JSP页面中执行的java代码。

语法:<%java代码%>

JSP声明

在JSP页面中定义变量或者方法。

语法:<%!java代码%>

JSP表达式

在JSP页面中执行的表达式。

语法<%=表达式%>//注意:表达式不以分号结束

JSP页面生命周期

 

 

      jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程的编程带来的同步问题,由于该Servlet始终贮存于内存,所以响应是非常快的。每次修改JSP页面后都要重新编译,编译后的文件位于tomcat安装目录下的work中;JSP编译后生成一个.java文件和一个.class文件;打开.java文件,里面两个比较重要的方法是jspinit()和jspservice()。

JSP内置对象

内置对象简介

    JSP内置对象是web容器创建的一组对象,不使用new关键字就可以使用的内置对象。

Web程序的请求响应模式

用户发送请求(request)

服务器给用户响应(response)

 

Out对象

Out对象时JspWriter类的实例,是向客户端输出内容常见的对象。

常用方法如下:

1、  void println()向客户端打印字符串

2、  void clear()清除缓冲区的内容,如果在flush之后调用会抛出异常。

3、  void clearBuffer()清楚缓冲区的内容,如果在flush之后调用不会抛出异常

4、  void flush()将缓冲区的内容输出到客户端

5、  int getBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0

6、  int getRemaining()返回缓冲区还剩多少可用

7、  Boolean isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常

8、  Void close()关闭输出流

 

Get和post区别

 

<from name=”regForm” action=“动作” method=”提交方式”></from>

 

表单有两种提交方式:get和post

 

1、         get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性较低但效率比post方式高。适合提交数据量不大、安全性不高的数据。比如:搜索、查询等功能。

 

2、         post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大、安全性搞得用户信息。比如:注册、修改、上传等功能。

 

Request对象

 

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。Request对象具有请求域,即完成客户端的请求之前,该对象一直有效。常用方法如下:

 

String getParameter(String name)返回name指定参数的参数值

 

String[] getParameterValues(String name)返回包含参数name的所有值的数组

 

void setAttribute(String ,Object)存储此请求中的属性

 

object getAttribute(String,name)返回指定属性的属性值

 

String getContentType()得到请求体的MIME类型

 

String getProtocol()返回请求用的协议类型及版本号

 

String getServerName()返回接受请求的服务器主机名

 

String getServerPort()返回服务器接受此请求所用的端口号

 

String getCharacterEncoding()返回字符编码方式

 

void setCharacterEncoding设置请求的字符编码方式

 

int getContentLength()返回请求体的长度(以字节数)

 

String getRemoteAddr()返回发送此请求的客户端IP地址

 

String getRealPath(String path)返回一虚拟路径的真实路径

 

String request.getContextPath()返回上下文路径

 

response对象

 

response对象包含了响应客户端请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。常用方法如下:

 

String getCharacterEncoding()返回响应用的何种字符编码

 

void setContentType(String type)设置响应的MIME类型

 

PrintWriter getWriter()返回可以向客户端输出一个字符的一个对象(注意比较:PrintWriter和内置out对象的区别)

 

sendRedirect(java.lang.String location)重新定向客户端的请求

 

请求转发与请求重定向

 

请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次请求对象不会保存,地址栏的URL地址会改变。

 

请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp)是一次请求,转发后请求对象会保存,地址栏的URL地址不改变。

 

转载于:https://www.cnblogs.com/weink1215/p/4482415.html

你可能感兴趣的文章
graphite custom functions
查看>>
ssh无密码登陆屌丝指南
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
oracle连接的三个配置文件(转)
查看>>
Java 8 中如何优雅的处理集合
查看>>
Centos下源码安装git
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
二叉树的遍历问题总结
查看>>
新浪分享API应用的开发
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
mybatis中&gt;=和&lt;=的实现方式
查看>>
Python面向对象03/继承
查看>>
java序列化和反序列化
查看>>
绝对定位
查看>>
flink源码编译(windows环境)
查看>>
dpkg 删除 百度网盘 程序
查看>>
服务器nginx安装
查看>>