您的位置:

jsp的头代码,jsp头部报错

jsp的头代码,jsp头部报错

更新:

本文目录一览:

JSP 的首页头部 标题 关键词 网页描述应该怎么写代码啊

在head 标签里添加以下标签

1.这里写关键词,多个关键词可以用逗号分开

meta http-equiv="keywords" content="keyword1,keyword2,keyword3"

2.这里写描述

meta http-equiv="description" content="This is my page"

自定义标签和jsp页面怎么实现

jsp自定义标签用法,供大家参考,具体如下:

什么是标记

使用HTML语言我们可以这样去编辑我们的网页:

HTML

HEAD

TITLE

HELLO WORLD

/TITLE

/HEAD

BODY

HELLO WORLD

/BODY

/HTML

在这里我们把/HEAD,TITLE,BODY称为标记。HTML 标记( HTML Markup)是HTML文档的控制语言,用于指定浏览器显示和打印文档的方式.它是用小于号""和大于号""括起来的短语和符号,如 Html、/Body等。许多HTMl标记以成对的方式出现,如TITLE /TITLE、Body/Body 等。在JSP中我们也可以定制自己的标记,以供JSP页面使用,如下例所示:

!—login.jsp--

%@ taglib uri="/tlds/taglib.tld" prefix="tagclass" %

html

head

titlelogin/title

/head

body

tagclass:login width="200" height= "100"

/tagclass:login

/body

/html

在上例中/tagclass:login就是一个JSP定制标记符。widtht、height是这个标记的属性。%@ taglib uri="/tlds/taglib.tld" prefix="tagclass" %是一个标记库定义指令,在稍后我们将会讨论。在JSP中定制标记符,实质上就是以标记的形式封装了一个俱有独立功能的Java类。标记的使用减少了直接嵌入JSP页面的Java代码,方便了页面的布局,并且有利于代码的复用,提高了开发的效率。

JSP服务器解析标记的过程

那么当一个标记被嵌入JSP页面后,JSP服务器是如何对这个标记进行解析的呢?各对象的含义如下所示:

Client: 表示客户端。

JSP-Server:JSP服务器。

JSP-Page:JSP页面。

TLD:  标记库描述文件,定义标记和标记的各种属性和处理文件等。

TagClass 标记处理程序

当一个用户访问一个JSP页面时,这个请求被发送到JSP服务器,JSP服务器会根据这个请求去调用相应的页面,如果这个页面中有自定义的标记, JSP服务就会根据页面指令%@ taglib去访问TLD得到处理程序的相关信息,接着调用该处理程序的构造器方法,启动标记符处理程序,并读取标记符的属性和相应值。对每个没有设置属性的,调用相应的set方法。当标记符第一次使用时,它的任何属性都不会做过设置,因此对每个属性都调用set方法。属性设置完以后,JSP服务器调用处理程序的doStartTag(),然后再调用doEndTag()方法。最后JSP服务器会继续处理剩下的页面,在页面结尾调用release ()方法,清理占用的所有资源。

TLD文件

TLD(TLD:Tag Library Descriptor标记库描述符)文件,标准的XML格式的标记定义文件,被用来存放标记符的信息,下面就是一个典型的TLD文件。

?xml version="1.0" encoding="ISO-8859-1" ?

!—XML的版本及其字符集--

!DOCTYPE taglib

PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"

" "

!—文档类型定义--

taglib

!—此标记说明我们开始描述一个标记库--

tlibversion1.0/tlibversion

!—标记库的版本--

jspversion1.1/jspversion

!—所使用的JSP的版本--

shortnametagclass/shortname

!—缺省的名称--

tag

namelogin/name

!—标记的名称--

tagclass

tagclass.login.login

!—处理这个Tag的相应的类的名称--

/tagclass

info

 !—对本标记符的描述--

/info

attribute

!—开始定义标记的属性--

nameheight/name

  !—属性的名称--

requiredtrue/required

  !—表示这个属性是不是必须的--

rtexprvaluetrue/rtexprvalue

!—表示这个属性是否可以用JSP的程序段的结果输出--

/attribute

attribute

namewidth/name

requiredtrue/required

rtexprvaluetrue/rtexprvalue

/attribute

/tag

/taglib

在这个TLD文件中定义了只有一个标记符的标记符库,这个名为login的标记符会调用一个Applet以验证用户的合法性。处理这个标记的类就是 tagclass.login.login。width、height是这个标记的两个属性。属性是在使用标记符时作为参数发送的值。我们可以在上面的示例中增加几个标记,也可以为每个标记添加几个属性。我们开发标记符库时不一定非要从头开始,自己编写一个全新TLD。我们可以使用某个集成的开发的环境,也可以修改上面的例子。

TagLib指令

那么当JSP服务器在解析一个标记符时,它是如何定义一个标记库的呢?这就是TagLib指令的主要责任。

Taglib 指令

定义一个标记库以及其自定义标记的前缀.

JSP 语法

复制代码 代码如下:

%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %

例子

%@ taglib uri="/tlds/taglib.tld" prefix="tagclass" %

html

head

titlelogin/title

/head

body

tagclass:login width="200" height= "100"

/tagclass:login

/body

/html

描述

% @ taglib %指令声明此JSP文件使用了自定义的标记,同时引用标记库,

也指定了他们的标记的前缀。 你必须在使用自定义标记之前使用% @ taglib %指令。

属性

uri="URIToTagLibrary" :Uniform Resource Identifier (URI)根据标记的前缀对自定义的标记进行唯一的命名,URI可以是一个相对或绝对的路径。

prefix="tagPrefix":在自定义标记之前的前缀。如上例中的/tagclass:login

标记符的处理程序(Tag handle)

我们还是以一个例子来看下如何实现一个Tag handle。首先是看一下它的类图:

让我们再看一下它的代码:

package tagclass.login;

import javax.servlet.jsp.tagext.TagSupport;

import javax.servlet.jsp.*;

import java.io.*;

public class login extends TagSupport

{

public login()

{

super();

}

public int doStartTag() throws JspTagException

{

JspWriter out = pageContext.getOut();

try

{

out.println("APPLET CODEBASE=applet/login/ CODE=login.class width=200 height=100 /APPLET");

}

catch(Exception e)

{

}

return SKIP_BODY;

}

publicc int doEndTag()throws JsptagException

{

return EVAL_PAGE;

}

public void release()

{

super.release();

}

public void setWidth(String language)

{

this.width = width;

}

public String getWidth()

{

return this.width;

}

public void setHeight(String height)

{

this.height=height;

}

public String getHeight()

{

return this.height;

}

private String width;

private String height;

}

从以上我们可以看出,实现一个简单的标记符处理程序有几个要求:①增加一个类,使之继承 java.Servlet.jsp.tagext.TagSupport类。这个类提供了java.Servlet.jsp.tagext.Tag接口所要求的所有的方法。另外,还需要使用一些基本的API,使JSP容器能够调用我们自己提供的标记符处理程序。②必须为每个标记符属性分别创建一个 getattribute和setattribute方法,JSP容器需要使用这些方法处理程序传递参数。③要为标记符处理程序创建一个构造器和自毁器。JSP需要使用构造器启动处理程序。自毁器是在realease()方法中定义的。在处理程序的生命周期结束时,需要调用自毁器释放所占用的资源。④创建两个名为doStartTag()和doEndTag()的方法,执行具体的处理和输出动作。这两个方法是在处理自定义标记符的起始位置和结束位置调用的。它们的返回值是在Tag Interface里定义的静态int,这几个静态值分别是:

SKIP_BODY隐含0 :跳过了开始和结束标签之间的代码。

EVAL_BODY_INCLUDE隐含1:将body的内容输出到存在的输出流中

SKIP_PAGE隐含5 : 忽略剩下的页面。

EVAL_PAGE隐含6:继续执行下面的页

当然标记符也有它自己的缺点。很不方便的封装过程,有限的功能。对于一些不太复杂和功能单一的逻辑描述,需要传递的参数要求不高时,使用JSP标记,要方便的多。对于大多数的商业逻辑应用,还是使用bean要好的多,也宜于servlet控制。

附:文章中所用示例的完整代码

JSP代码:login.jsp

%@ taglib uri="/tlds/taglib.tld" prefix="tagclass" %

html

head

title/title

/head

body

tagclass:login width="200" height= "100"

/tagclass:login

/body

/html

标记符描述库:taglib.tld

?xml version="1.0" encoding="ISO-8859-1" ?

!DOCTYPE taglib

PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"

" "

taglib

tlibversion1.0/tlibversion

jspversion1.1/jspversion

shortnametagclass/shortname

tag

namelogin/name

tagclass

tagclass.login.login

/tagclass

info

/info

attribute

nameheight/name

requiredtrue/required

rtexprvaluetrue/rtexprvalue

/attribute

attribute

namewidth/name

requiredtrue/required

rtexprvaluetrue/rtexprvalue

/attribute

/tag

/taglib

标记符处理程序:login.java

package tagclass.login;

import javax.servlet.jsp.tagext.TagSupport;

import javax.servlet.jsp.*;

import java.io.*;

public class login extends TagSupport

{

public login()

{

super();

}

public int doStartTag() throws JspTagException

{

JspWriter out = pageContext.getOut();

try

{

out.println("APPLET CODEBASE=applet/login/ CODE=login.class width=200 height=100 /APPLET");

}

catch(Exception e)

{

}

return SKIP_BODY;

}

publicc int doEndTag()throws JsptagException

{

return EVAL_PAGE;

}

public void release()

{

super.release();

}

public void setWidth(String language)

{

this.width = width;

}

public String getWidth()

{

return this.width;

}

public void setHeight(String height)

{

this.height=height;

}

public String getHeight()

{

return this.height;

}

private String width;

private String height;

}

标记符处理程序中所使用的Applet : login.java

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class login extends Applet implements ActionListener

{

private String s_username;

private String s_userpassword;

private Button b_ok;

private Button b_register;

private Label l_username;

private Label l_userpassword;

private TextField t_username;

private TextField t_userpassword;

private GridLayout g_gridlayout;

public void init()

{

b_ok=new Button("ok");

b_register=new Button("register");

l_username= new Label("name");

l_userpassword=new Label("password");

t_username=new TextField();

t_userpassword=new TextField();

b_ok.addActionListener(this);

b_register.addActionListener(this);

g_gridlayout=new GridLayout(3,2,10,10);

this.setLayout(g_gridlayout);

//this.setBackground(Color.blue);

add(l_username);

add(t_username);

add(l_userpassword);

add(t_userpassword);

add(b_ok);

add(b_register);

}

public void actionPerformed(ActionEvent ev)

{

String s_label=ev.getActionCommand();

if (s_label.equals("ok"))

{

t_username.setText("name");

}

if (s_label.equals("register"))

{

t_userpassword.setText("password");

}

}

public void paint(Graphics g)

{

}

}

如何在Eclipse中设置默认的JSP文件头部编码

修改eclipse默认工作空间编码方式,General——Workspace——Text file encoding 修改工程编码方式,右击工程——Properties——Resource——Text file encoding 修改文件编码方式,和修改工程编码基本一致,右击文件——Properties 修改某类文件默认编码方...

在Intellij Idea中怎么引入c标签

1、首先在jsp页面头部加如下代码:

%@taglib prefix="c" uri="" %11

很多时候,当写完这句的时候,都会报一个错误提示信息。那么怎么解决?

进入“settings”设置选项,然后搜“DTD”然后如下图,在左边的标签选项卡找到“Schemas and DTDS”

然后选择右边的“External schemas and dtds”中的添加按钮

%@taglib prefix="c" uri="" %11

然后选择ok,然后根据自己的需要配置

jsp页面出现文件头

jsp中的%@ pageEncoding="UTF-8"%是设置编码格式的,如果有中文的话统一指定为utf-8的话就不会出现乱码。

freemarker模板和传统的jsp+jstl我都用过,作为开发人员来说eclipse对jstl有提示,写起来比较顺手,jstl标签要求不那么严格,比如说${person.name}这个属性为空自动显示为空字符串。freemarker对逻辑要求更严谨,比如如果你不做非空验证肯的那个会抛异常的,虽然异常提示很清楚,不过非空验证多了写起来太繁琐。

jsp页面头部的这两种声明有啥区别?

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional

这句话就是告诉浏览器你用的html代码是哪一个版本

w3c根据你声明的版本来检查你的代码是否符合w3c规范

XHTML 1.0 Transitional 是过渡型,

具体的内容很多,想弄清楚还是要多看资料

!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN" 这样的不指定dtd的xml类型,如果你想css兼容好请使用!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

jsp的头代码,jsp头部报错

本文目录一览: 1、JSP 的首页头部 标题 关键词 网页描述应该怎么写代码啊 2、自定义标签和jsp页面怎么实现 3、如何在Eclipse中设置默认的JSP文件头部编码 4、在Intellij Id

2023-12-08
jsp文件开头报错java(jsp全部报错)

本文目录一览: 1、刚建个jsp页面出现错误提示 这个头文 2、Java 在打开jsp源文件时 报错 3、为什么我新建一个JSP他的开头就报错呢 4、jsp文件java代码提示有问题怎么破 刚建个js

2023-12-08
jsp文件写标题的代码,创建jsp文件,开头报错

本文目录一览: 1、求jsp代码,题目如下: 2、怎么在jsp中输入页面标题 3、编写用户注册于登录的JSP页面的全部程序代码 4、JSP 的首页头部 标题 关键词 网页描述应该怎么写代码啊 5、js

2023-12-08
jsp文件js代码出错,jsp文件报错

本文目录一览: 1、jsp调用js文件时出现乱码 2、急!!jsp导入js文件出错!刚刚学还不大明白! 3、jsp引入的js乱码问题 jsp调用js文件时出现乱码 解决方法:1.html中加上meta

2023-12-08
java异常显示在jsp中(jsp文件开头报错java)

本文目录一览: 1、在JSP中抛出java.io.IOException: tmpFile.renameTo(classFile) failed异常怎么解决 2、java中如何获取throws抛出的异

2023-12-08
jsp上一条记录代码,jsp上一条记录代码不见了

本文目录一览: 1、上一页12345下一页这样的JSP代码怎么实现 2、有关向数据库中添加一条记录的问题,JSP代码 3、请问:关于jsp中的一小段代码 上一页12345下一页这样的JSP代码怎么实现

2023-12-08
前段jsp代码(JSP前端)

本文目录一览: 1、jsp登陆界面源代码 2、jsp页面的代码由哪两部分组成 3、jsp是前端还是后端开发的 jsp登陆界面源代码 1、login.jsp文件%@ page language="jav

2023-12-08
jsp里报web错误,jsp编译报错

本文目录一览: 1、开发JSP WEB应用所犯的错误收集(多者拿分,严禁抄袭) 2、jsp提示错误怎么办? 3、JSP,改了web.xml里的配置打开页面报404错误 开发JSP WEB应用所犯的错误

2023-12-08
jsp全部代码,jsp弹窗代码

本文目录一览: 1、jsp登录代码 2、jsp代码意思 3、jsp的常用指令有哪些 4、jsp的代码 求解? jsp登录代码 login.jsp%@ page language="java" page

2023-12-08
jsp收藏完整代码,jsp笔记

2022-11-23
jsp中java报错(JSP处理错误)

本文目录一览: 1、关于jsp导入JAVA包报错的问题 2、jsp页面嵌入JAVA代码报错 3、Java 在打开jsp源文件时 报错 4、在JSP中抛出java.io.IOException: tmp

2023-12-08
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
jsp页面代码生成,jsp页面写java代码

本文目录一览: 1、怎么将jsp页面转换为html代码 2、在JSP页面上写代码直接生成一个.txt文件 3、jsp页面获取数据后怎样生成HTML静态页面 4、jsp页面的代码由哪两部分组成 5、JS

2023-12-08
jsp参考大全及源代码(jsp的代码)

本文目录一览: 1、jsp技术的验证码源代码? 2、jsp登陆界面源代码 3、jsp 中网站的首页源代码 jsp技术的验证码源代码? 实际当中很少用这种纯JSP的验证码技术,缺乏安全性,下面有一个这样

2023-12-08
jsp加载代码,jsp已加载的基本类

本文目录一览: 1、如何在JSP代码中嵌入javascript代码 2、jsp页面如何加载内容? 3、jsp中加入Java代码 4、jsp中 java代码、js、html代码 加载的顺序 如何在JSP

2023-12-08
jsp页面指针样式(jsp按钮样式)

本文目录一览: 1、jsp页面出现空指针,具体应该怎么修改?请教高手。 2、jsp设计 空指针 3、如何在jsp页面添加css样式 4、如何在Java中的Jsp页面中更换页面样式? 5、如何用java

2023-12-08
jsp页面公共js代码抽取(html抽取公共代码)

本文目录一览: 1、怎么在 js 代码中使用 jsp 标签或 Java 代码 2、jsp 如何调用js 3、JSP的页面里面有JS的代码怎么调试 4、在jsp页面中java代码获取js里面var变量的

2023-12-08
jsp连接网页和java代码(jsp和java怎么连接)

本文目录一览: 1、在JSP网页中怎样加入Java代码?? 2、java jsp页面怎么写java类?怎么调用java代码? 3、我怎么把我编辑的java程序和jsp衔接起来,并且把他们显示出来,就是

2023-12-08
菜鸟求jsp商品展示源代码(菜鸟求jsp商品展示源代码错误)

本文目录一览: 1、jsp代码注释 本人菜鸟 希望详细些 通俗易懂些 2、jsp问题。菜鸟刚起步,求大虾来帮我。 3、JSP菜鸟求指教 4、jsp点击一下按钮弹出提示框求源代码 5、jsp 中网站的首

2023-12-08
jsp中out.println出现编译错误,java pri

本文目录一览: 1、jsp的编译错误 2、jsp中定义方法时是不是不能使用out.println,为什么报错 3、为什么JSP的out.println报错? 4、jsp的out输出报错 5、关于ide

2023-12-08