JSP中嵌入java代码的三种方式:

(1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量

(2)java片段(scriptlet):  <% java代码; %>

(3)表达式:用于输出表达式的值到浏览器,<%=表达式  %>  在表达式中不能加分号(;)

JSP页面的指令

<%@ page %> //这个一般是写在最顶上的比如导入等

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

指令的作用:设置JSP页面的属性和特征

常用指令:

(1)<%@ page %> 或<jsp:directive.page  > :常用属性:language=""contentType="text/html;charset=UTF-8"

pageEncoding="" import="com.inspur.Dpet"

isErrorPage="true|false" 指定当前页面是否可以作为错误页

errorPage="error.jsp" (error.jsp页面中的isErrorPage="true")

(2)<%@ include file="url"%> 或<jsp:directive.include >

【注意】静态包含,在编译阶段把其他文件包含进来一起编译生成字节码文件

问题:(1).被包含的文件中不能包含<html></html><body></body>;

(2).file属性赋值不能用表达式,不能带参数

HTML中form、reset和submit标签的用法:

<form name=”loginForm” method=”post/get” action=”…” onsubmit=”return function()”>

//action的内容是Servlet Mapping当中的URL

<input type=”reset” id=”reset” name=”reset” value=”重置”/>

<input type=”submit” id=”submit” name=”submit” value=”登陆”/>

</form>

form表单的method中post和get的区别:

Post提交的数据更具隐蔽性,适合提交大批量的数据

http://localhost:8080/booklib/user

而get提交的数据隐蔽性不好,会在地址栏内显示出来而且地址栏最多允许255个字符

http://localhost:8080/booklib/user?username=admin&password=123&submit=登陆

上述这种通过get传输数据的方法也可以通过超链接实现:

<a href="user?username=admin&password=123&submit=登陆"></a>

效果与get方法一样,而且用超链接提交的数据也可以用String  userrname  = request.getParameter("username"); 得到数据,其中方法的参数是数据名称即等号前的,值是等号后的。

也可以是:location.href="user?action=del&uid="+uid;

或:location.replace(""user?action=del&uid="+uid");

Location.href 等同于location.assign。(怎么用?????????)

当使用replace的时候请求的地址不会放到list当中去?????什么意思??

Form中的action的值应是web.xml中的url-pattern的值:

Web容器在收到这个值后会解析这个值,然后拿这个值到web.xml中的url-pattern去匹配,直到找到对应的Servlet类,之后通过反射机制生成Servlet实例,然后到Servlet中的service()方法中去,然后根据method请求的是post还是get调用相应的doPost()和doGet()方法。

如何调用jsp中的request和response对象:

request和response对象来源:来自doGet(HttpServletRequest request, HttpServletResponse response)

在jsp中可以直接用,用法如下:

request常用的方法有两个即:

request.setAttibute(“key”,value)/requeset.getAttribute(“key”)

//一般在Servlet中用setAttribute()

//一般在jsp中用getAttribute()

getAttribuet()得到的是一个对象即Object类型,用时需要进行强制类型转换

request.setCharacterEncoding("UTF-8");

String username = request.getParameter("username");

String password = request.getParameter("password");

session对象来源:在doGet()中申明的HttpSession session = request.getSession(true);

session:sessioin.setAttribute("key",value);

//一般在Servlet中用setAttribute()

(Object)session.getAttribute("key");

//一般在jsp中用getAttribute()

Servlet中的RequestDispatcher对象:

RequestDispatcher rd = request.getRequestDispatcher(target);

rd.forward(request,response)

JSP中嵌入java代码方式以及指令的更多相关文章

  1. JSP中嵌入java代码的标签方式(转)

    (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% java代码; %> (3)表达式 ...

  2. JSP中的Java代码和内置对象

    一.JSP中的Java代码 (一)JSP页面中有三种方式嵌入java代码: 1.java的表达式 格式:<%= java表达式 %> 2.java的语句 格式:<% java语句&g ...

  3. EL和 JSTL? 在JSP中简化 java代码的写法!

    一.servlet部分 package com.aaa.servlet; import com.aaa.dao.IStudentDAO; import com.aaa.dao.Impl.Student ...

  4. jsp中包含JAVA代码

    在JSP中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了JAVA代码. 在JSP中Scriptlet一共分为三种:        · <%%>:定义局部变量,编写语句    ...

  5. 在jsp中嵌入javascript代码执行对html的影响方式

    1 javascript的作用范围 javascript操作的是html dom树. 它可以用来直接写入html标签:修改html的内容:响应事件:修改html中的图像:修改html的样式等等. 2 ...

  6. jsp中利用java代码换行

    从数据库中取出的10条商品数据分两行显示,每行5条. <% for(int i=0; i<latestProducts.size(); i++) { Product p = latestP ...

  7. 在jsp页面嵌入java代码让某些div显示或者隐藏

    <!--监测评价人显示评价人信息 --> <% if("D3".equals(role_flag)){%> <div id="crud&qu ...

  8. Linux内核设计第四周学习总结 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数A ...

  9. 【JSP】JSP中的Java脚本

    前言 现代Web开发中,在JSP中嵌入Java脚本不是推荐的做法,因为这样 不利于代码的维护.有很多好的,替代的方法避免在JSP中写Java脚本.本文仅做为JSP体系技术的一个了解.     类成员定 ...

随机推荐

  1. 一段Android里面打印CallStatck的代码

    public void dumpCallStack() { java.util.Map<Thread, StackTraceElement[]> ts = Thread.getAllSta ...

  2. MVC学习系列——记一次失败面试后,感想。

    在此写博客之际,热烈庆祝母校苏州科技学院,正式改名为苏州科技大学. 一晃眼,从自己投身IT行业已经两年有余,期间经历了结婚.买房等人生大事,非常感谢我的老婆,谢谢她这么爱我,嫁给我这个码农,呵呵... ...

  3. Codeforces Round #333 DIV2

    D: B. Lipshitz Sequence time limit per test 1 second memory limit per test 256 megabytes input stand ...

  4. ASP.NET Web - 服务器控件

    控件 HTML 说明 Label <span> 返回一个包含文本的span元素 Literal static text 返回简单的静态文本.使用Literal控件,可以根据客户应用程序转换 ...

  5. python学习小结1:for循环控制语句

    用一个列表来确定for循环的范围 >>> x = [0,1,2,3,4] >>> for i in x: print i, 0 1 2 3 4  循环一个字符串 & ...

  6. android studio 中设置apk的版本号

    今天在mainfest.xml中设置版本号为2,(代码获取到的版本号无效) android:versionCode="2" android:versionName="2. ...

  7. windows下编译ffmpeg

    windows 编译ffmpeg 搞过很多次,每次总是磕磕碰碰,从头到尾不能一直顺利,浪费一些时间.终究起原因,都是当时记得,过段时间就忘了.好记性不如烂笔头,大好周末晚上,闲暇无事,记录最近一次编译 ...

  8. 《Dive into Python》Chapter 4 笔记

    自省:Python中万物皆对象,自省是指代码可以查看内存中以对象形式存在的其它模块和函数,获取它们的信息,并对它们进行操作.用这种方法,可以定义没有名称的函数,不按函数声明的参数顺序调用函数,甚至引用 ...

  9. Netty4.x中文教程系列(四) 对象传输

    Netty4.x中文教程系列(四)  对象传输 我们在使用netty的过程中肯定会遇到传输对象的情况,Netty4通过ObjectEncoder和ObjectDecoder来支持. 首先我们定义一个U ...

  10. 设计模式之原型模式(prototype)

    原理:拷贝自身对象实际上就是调用的拷贝构造函数,注意事项是这里的拷贝是深拷贝,即需要拷贝指针所指的内容 #include <stdio.h> #include <memory> ...