JSP 二

JSP的注释

<%--........--%>

JSP指令和JSP动作(标准的JSP标签)

JSP指令的语法
<%@... ....%>

<%@include file="...."%> 包含指令,包含指令会将要包含的文件代码原样输出到本页面(在翻译时把包含文件的内容引入并合并),不进行翻译,file属性制定要包含的文件的名字(注意要包含的文件的路径),这个指令可以实现页面的复用。

注意:<%@include file=" "%>要包含的JSP文件中不能定义重名的变量,如果不使用包含指令,那么JSP中的最小转换单元就是JSP文件,使用了包含指令就会将多个jsp的结果合并到一起。

<%@page ..%>页面指令

<%@page import="..."%> 引入包 例:<%@page import="java.util.*,ent.*"%>(可出现多次)

<%@page pageEncoding="GBK"%>设定页面显示的字符集

<%@page contentType="text/html;charset=GBK"%>设置输出流的编码方式和文件格式。

注意:输出的字符集编码方式要和页面显示的字符集相同,一般定义输出流的编码方式,注意以上两个页面指令在JSP中最好只出现一次。注意在请求中传送的参数的值是中文的话需要调用请求request的
setCharacterEncoding("..")方法设置相应的编码方式,只适用于post请求,也可以通过Servlet的Filter来进行中文编码方式的处理。

<%@page language="java"%>指定JSP的脚本语言,现在只能写java

<%@page extends=".."> 指定翻译后代码类型的父类,最好不要使用这个指令

<%@page session="true|false"%>指定是否自动创建Session,最好不自己指定,使用默认值

<%@page buffer=".." autoflush="true|false"%>设置输出的缓存和是否自动刷新缓存,一般情况下都使用默认值,缓存的默认值为8KB。

<%@page isThreadSafe="true|false"%>是否线程安全,默认为true,也就是线程安全,只使用默认值。

<%@page info=".."%>设置页面信息,一般不用

<%@page errorPage=""%>指定异常处理页面
<%@page isErrorPage="true|false"%>设定本页面就是异常后跳转的页面
<%@page isELIgnored="true|false"%>设定本页面是否忽略JSP2.0种EL表达式

<%@taglib ..%> 标签库指令,用于引入自定义标签库

JSP动作

<jsp:... ...>

<jsp:include page="..." flush=true|false> include动作是在翻译和编译后运行时进行响应的合并,也就是对应了Servlet中RequestDispatcher类的include(ServletRequest request, ServletResponse response)方法。

include动作可以传递参数
<jsp:include page="test.jsp">
<jsp:param name="user" value=" ">
</jsp:include>
在使用参数时,可以用request内置对象来获取参数的值。

<jsp:forward page="xxx/xxx.jsp">forward动作对应的是Servlet中RequestDispatcher类的forward(ServletRequest request, ServletResponse response)方法,也就是把请求进行转发。
也可以写成
<jsp:forward>
<jsp:attribute name="page">xxx/xxx.jsp</jsp:attribute>
</jsp:forward>
这种写法等价于上面的写法。

在使用Servlet的response的重定向sendRedirect(String location)方法在使用时要包含应用的路径,注意,重定向会放弃这个请求,并向服务器发送一个新的请求,但是响应对象还是一个。重定向是用来避免重复提交的。

注意:对页面的刷新操作就会再一次运行程序,也就仿佛进行了再一次的提交一样,这也就是重复提交的问题,所以需要使用重定向来解决这个问题。

<jsp:plugin type="bean|applet" code="...">
...
</jsp:plugin>
jsp:plugin动作可以使页面上运行applet,或者是使用java代码。

<jsp:useBean id="对象名" class="类全名"|type="类全名"(使用多态时使用) beanName="类全名" scope="page|request|session|application">
jsp:useBean动作,可以通过这个动作来使用java代码,id就是变量名,clss和type的区别在于,使用type是不会创建对象,而只是会先查找如果有该对象就会使用,如果没有就会抛出异常,class在没有该对象存在时,则会创建新对象。scope是用来保存实例的空间范围,page、request、session、application,由小到大,默认为page。

<jsp:setProperty name="对象名" property="属性名" value="属性值"/>
直接指定Bean属性的值,必须类型一致。

<jsp:setProper name="对象名" property="属性名" param="from表单中的响应的参数名"/>
用表单中指定的参数来为Bean属性赋值,系统会自动作类型转换。

<jsp:setProperty name="对象名" property="属性名"/>
用表单中和Bean属性同名的标单项来给Bean属性赋值,这样写只会为指定的属性赋值

<jsp:setProper name="对象名" property="*"/>
这种方式会自动用表单中的同名参数来为Bean的所有属性赋值

<jsp:setProperty name="对象名" property="属性名" value="<%= ...%>"/>
使用表达式来为Bean的属性进行赋值

<jsp:getProperty name="对象名" property="属性名">
取得指定的属性,这个动作不常用,一般用表达式代替。

我们可以通过设置属性名的方法名也就是setXxxx()来控制属性的赋值,用form表单的参数为Bean的属性赋值时,系统会自动的调用与之同名属性的setXxxx()方法,尤其是日期类型,可以通过使用这一方法来处理。
例:
import java.sql.*;

public class Person{
private Srting name;
private Date birthday;
public void setName(String name){
this.name=name;
}
public void setBirthdayAsString(String birthday){
this.setBirthday(valueOf(birthday));
}
public void setBirthday(Date birthdays){
this.birthday=birthday;
}
}

add.jsp

<jsp:useBean id="person" type="Person" scope="request">
<jsp:setProper name="person" property="*"/>
</jsp:useBean>

toadd.jsp

<form action="xxx" methmod="post">
<input type="text" name="name">
<input type="text" name="birhtdayAsString">
<input type="submit" value="add.jsp">
</form>

JavaBean和EJB的区别
JavaBean是可视的或者是不可视的,不用部署,EJB是不可视的,需要部署到服务器中。
JavaBean部署在应用程序中, EJB是部署在容器中,可以是有状态或者是无状态的,声明式事务。
JavaBean的属性和方法是普通的,EJB是需要遵守规范,是需要通过标准的描述符来定义的。
JavaBean是基于事件驱动的,EJB中只有消息驱动Bean是基于事件的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值