jsp编程
jsp的实质和工作原理:
jsp (全称:Java Server Pages) 是一种动态网页开发技术,是由类似html元素的jsp标签写成的servlet. 
jsp文件是以  .jsp   为后缀的文件。当你写了一个jsp文件(filename.jsp),在浏览器上访问的时候(注意是访问的时候,不是启动tomcat服务器的时候),web服务器识别到这是一个jsp网页的请求,然后从硬盘加载jsp文件后将它转换成servlet:name_jsp.java 文件,并编译成servlet可执行类,web服务器调用servlet引擎,将数据传送到浏览器。(这里还有细节,比如 jsp 引擎与servlet引擎以及服务器之间是如何配合的,为什么修改jsp后不需要重启服务器?)

jsp文件的结构解析
jsp 实际上就是servlet, 在jsp页面中的所有元素,除了jsp标签,指令以及jsp语法定义插入的代码,还有上面提到的普通注释和隐藏注释,其他内容都被编译转换成String类型,通过out.println();写到了浏览器。(不会说...等待改进)
 
jsp语法  
脚本程序:脚本程序可以包含任意量的Java语句、变量、方法或表达式。
     <%   这里的java代码,将会被解析到name_jsp.java 中的,_jspService方法      %>
            <%!   这里的Java代码,将会被解析到name_jsp类的成员变量和成员方法    %>
            <%=   这里的代码将会被直接放到 _jspService方法中的out.println()语句中   %>
 
注释:jsp中有三种注释方式:
1). HTML注释:      <!-- 这里是注释的内容 -->
                            这种注释会被编译成java.lang.String类型,写到浏览器中成为html;
2). 普通注释:        <%// 我是注释,不可换行!  %>, <%/* 我是注释,可以换行 */%>, <%/**我是注释,可以换行 */%>
                            这种注释会写到Java文件中,<%    %> 这个符号用来在jsp文件中嵌入Java代码用的,百分号中间可以书写Java代码,所以java代码中的注释方式
          和原则都可以在百分号之间来用。
3). 隐藏注释:   <%--   我是注释,想换行就换吧! --%>
                          这个注释仅仅存在于当前的jsp文件,当jsp文件被转换成java文件的时候,这个注释就会被丢弃。
九大内置对象:

request  :    HttpServletRequest类的实例

response  :   HttpServletResponse类的实例

out  :       PrintWriter类的实例,用于把结果输出至网页上

session  :    HttpSession类的实例

application  :    ServletContext类的实例,与应用上下文有关

config  :      ServletConfig类的实例

pageContext  : PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问

page  :        类似于Java类中的this关键字

Exception  :   Exception类的对象,代表发生错误的JSP页面中对应的异常对象

jsp指令
 
jsp动作元素
      jsp:include         在页面被请求的时候引入一个文件。
  jsp:useBean         寻找或者实例化一个JavaBean。
      jsp:setProperty        设置JavaBean的属性。
  jsp:getProperty      输出某个JavaBean的属性。
  jsp:forward        把请求转到一个新的页面。
  jsp:plugin          根据浏览器类型为Java插件生成OBJECT或EMBED标记。
  jsp:element         定义动态XML元素
  jsp:attribute          设置动态定义的XML元素属性。
  jsp:body          在JSP页面和文档中使用写入文本的模板
EL表达式:
全称为:Expression language,在jsp中显示后台数据十分方便;
  1). 语法:${scope.var}
        el表达式的书写形式为:${},大括号中 scope 表示要取出的数据所在的对象或范围(可以是el中隐含的是一个对象,如果不声明scope则默认只从四个作用域中查询),var表示要取出的数据,或变量。如果变量有值,则显示值,否则,显示 空串;比如你在后台向request中设置了一个属性setAttribute("u_ser",user),user是一个实体类,然后通过请求转发跳转到jsp页面,可以通过el表达式进行获取:

${requestScope.u_ser.username}   // username 是user的一个属性
  这行代码相当于:
<%
   User user = (User)request.getAttribute("u_ser",user);
    String username = user.getUsername();
%>
<%= username==null? "" : username%>
 
 EL中隐含对象
      pageScope:        page 作用域
  requestScope:        request 作用域
  sessionScope:         session 作用域
  applicationScope:       application 作用域
  param:           Request 对象的参数,字符串

  paramValues:         Request对象的参数,字符串集合
  header:          HTTP 信息头,字符串
  headerValues:       HTTP 信息头,字符串集合
  initParam:         上下文初始化参数
  cookie:          Cookie值
  pageContext:       当前页面的pageContext
 
 
EL中的基础操作符
 
-------------------------------------------下面的部分有待整理
标签
base标签: 用于设置jsp页面中的所有的相对路径的基础参考路径
:

jsp编程的更多相关文章

  1. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

  2. Java EE JSP编程基础

    一.JSP编程介绍 JSP是实现普通静态HTML和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的Web页面.JSP在第一次运行时会花费很长时间,原因在与其 ...

  3. JSP编程-步步为营

    [第一个JSP举例] header.jsp <%@ page language="java" contentType="text/html; charset=utf ...

  4. Jave工具——servlet+jsp编程中mysql数据库连接及操作通用工具类

    该工具类是在JavaWeb中连接mysql所用到的通用工具类 该类用于Java+Servlet的编程中,方便数据库的操作,连接,获取其列表值.下面是这个数据库操作类的通用方法,基本上能够用于类里面只含 ...

  5. Java Servlet JSP编程(一)

    最近想学学java编程,java现在的应用还是挺广泛的,有必要学习一下. # index.jsp <%@ page language="java" contentType=& ...

  6. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  7. JSP编程技术5-购物车的实现-session会话对象

    首先十分感谢大家对我的文章的支持,我是个刚刚才找到自己方向的在校大学生,当然我的知识和能力有限,眼下正在努力恶补学习中.当我看到自己首次发表到CSDN首页的文章才几个小时阅读量就超过了100时,对我来 ...

  8. JSP编程中常用的JavaScript技术(转载)

    1.<tronMouseOver=this.style.backgroundColor=’#FFFFFF’ onMouseOut=this.style.backgroundColor=”> ...

  9. Web-request内置对象在JSP编程中的应用

随机推荐

  1. CSS入门

    CSS,层叠样式表,是对web页面显示效果进行控制的一套标准.当页面的内容受多种样式控制,将会按照一定的顺序处理.CSS的作用:(1)将网页的内容结构和格式控制分开.(2)可以精确控制页面的所有元素. ...

  2. Windows7 安装vs2015 之后 调试Web项目IIS启动不了 aspnetcore.dll未能加载

    安装windows企业版,整整折腾了两天了,一个本身家里网络环境不好,时不时掉线,终于披荆斩棘,克服了所有困难,结果VS2015 EnterPrise 版本在调试Web环境的时候,始终在任务栏里找不到 ...

  3. 一种效率更高的for循环

    var i,array=[]; for(i=array.length;i--;) { //处理代码 } 1.for循环中使用更少的变量 2.逐步减至0,这样会更快,因为同0比较比同数组的长度比较,或同 ...

  4. C++模拟C#事件委托机制(一)

    原文来自于http://www.cnblogs.com/netssfy/articles/1652671.html 写了一段时间的C#代码后确实发现C#的事件委托非常好用.于是便想是否在C++中也能如 ...

  5. 关于lambda表达式的一些学习——基于谓词筛选值序列

    今天看了一些关于lambda表达式的知识,然后对于Func<T,TResult>泛型委托不太熟悉,便查了查相关资料,又引出来了基于谓词筛选值序列这个对我来说的新鲜知识点,于是去查MSDN, ...

  6. 用PowerMock mock final类

    mock final类相对简单,直接贴代码 被测方法: public class FinalEmployeeService { public void insertEmployee(Employee ...

  7. MAC与windows下打开当前文件路径的命令行(终端)

    MAC 下文件夹与终端: 1.打开当前路径的终端窗口方法: ①直接拖动要打开的文件夹到终端 ②打开finder的服务偏好设置, 勾选"新建位于文件夹位置的终端"选项, 以后可以在文 ...

  8. 汇编、c语言、c++的一些想法。

    学习C++的过程中一直有懂一点和迷糊的情绪伴随. 这几天在学习C++的变量定义.变量声明.数据类型等等.很多时候,跟我想的内容不一样.经常是,只知道这个东西是这样子的.却不知道,这个东西能在程序中有什 ...

  9. DataList无数据如何显示

    <FooterTemplate> <asp:Label runat="server" ID="emptyLb" Text="No D ...

  10. 扩展django的User的部分方法

    这做项目时发现django自带的User中的字段不够用,默认的auth_user表总共只有11个字段,如果需要更多的字段该怎么办,在网上搜了一下,有这么几种方法. 1. 直接修改django 源码,修 ...