昨天看了篇文章主要把baidu与腾讯2家公司的程序员基于其所处的环境作了对比。哎,我的工资太少了,只有努力写出更强劲,更迅速的代码,提高技术。
看了之后收获专业的程序员都要养成写日志的习惯。总结问题,记录下来。(以前写的程序过段时间就忘了这个确实有用)自己学会了总结一下,方便后面的程序员能够少走弯路迅速掌握。
心胸宽阔些:中国的软件行业,发展并不很理想,中国还需要更努力,中国的软件也需要后面的人努力提高技术。看网上的东西都是外国人开发的,不爽。我也希望其它的程序员能够开放些学习心得,让我迅速掌握些新知识。
一共分为2个步骤(前提是下载jar包2个:jstl-1.2.jar与standard.jar)
第一步:创建扩展应用
package baidu.tag;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
/**
* 快速建站 插件 之"新闻"内容管理
* @author kettas
* 上午11:01:07
*/
public class NewsTag extends BodyTagSupport {
// ######## SQL #############
protected String sql;
protected Object runObjects[];
protected Object value; // tag attribute
protected boolean valueSpecified = true; // status
protected Object target; // tag attribute
protected String property; // tag attribute
private String var; // tag attribute
private int scope; // tag attribute
private boolean scopeSpecified; // status
public NewsTag() {
super();
init();
}
private void init() {
value = var = null;
scopeSpecified = valueSpecified = false;
scope = PageContext.PAGE_SCOPE;
}
public void release() {
super.release();
init();
}
/**List 可通过其它方法产生出来,当然举一反三你可以写出更多更好用的插件*/
public int doEndTag() throws JspException {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
for (int i = 0; i < 10; i++) {
Map<String, String> map = new HashMap<String, String>();
map.put("resource_name", "name" + i);
map.put("resource_id", "id" + i);
list.add(map);
}
value=list;
pageContext.setAttribute(var,value, scope);
return EVAL_PAGE;
}
}
第二步:配置文件:要配置2个(/WEB-INF/tag.tld及/WEB-INF/web.xml)
<?xml version="1.0" encoding="utf-8"?>
<taglib version="2.0"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:shcemalocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<description>自定义标签</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>firstLabel</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
<tag>
<description>
Sets the result of an expression evaluation in a 'scope'
</description>
<name>news</name>
<tag-class>baidu.NewsTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description>
Name of the exported scoped variable to hold the value
specified in the action. The type of the scoped variable is
whatever type the value expression evaluates to.
</description>
<name>var</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<deferred-value>
<type>java.lang.Object</type>
</deferred-value>
</attribute>
<attribute>
<description>
Target object whose property will be set. Must evaluate to
a JavaBeans object with setter property property, or to a
java.util.Map object.
</description>
<name>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Name of the property to be set in the target object.
</description>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
Scope for var.
</description>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description>
Expression to be evaluated.
</description>
<name>run</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>tagWeb</display-name>
<jsp-config>
<taglib>
<taglib-uri>firstTag</taglib-uri>
<taglib-location>/WEB-INF/tag.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
第三步:使用标签
<%@page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="firstTag" prefix="C"%>
<html>
<head>
<title>MyJSP'tag.jsp'startingpage</title>
</head>
<body>
<C:news var="list1" run="select top 5 * from up_resource"></C:news><!-- 扩展的标签用来装载数据 依次原理可实现像国内其它CMS的标签 并且依赖于JSTL变得更强大-->
<c:forEach items="${list1}" var="map" step="1">
map-id: <c:out value="${map.resource_id}" />
Name-name: <c:out value="${map.resource_name}" /><br>
</c:forEach>
</body>
</html>
分享到:
相关推荐
【标题】"cms.rar" 提供的是一个基于JSP的内容管理系统(CMS)的实现,主要关注于使用JSP技术和MySQL数据库来构建一个高效且可扩展的CMS平台。在这个系统中,"cms_cms.jsp"可能是核心的管理界面,而...
10. **插件与扩展**:优秀的CMS系统应该具有良好的可扩展性,允许开发者通过插件机制添加新功能或定制化需求。 11. **前端技术**:随着前后端分离趋势的发展,CMS系统的前端可能采用React、Vue或Angular等现代...
常见的JSTL(JavaServer Pages Standard Tag Library)和Struts2标签库也可以增强系统的可重用性和可扩展性。 六、安全与权限管理 对于企业级CMS,安全性和权限控制是至关重要的。TOT-JSP-CMS可能包含用户认证、...
5. **JSTL(JavaServer Pages Standard Tag Library)**:标准标签库,提供了一系列预定义的标签,如迭代、条件判断等,减少脚本代码的使用。 **CMS系统特点:** 1. **内容管理**:CMS系统通常包含内容创建、编辑、...
在本系统中,JSP主要承担视图层的角色,负责渲染HTML代码,结合EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库,可以简洁地实现页面逻辑和数据绑定。 **3. Servlet** Servlet是...
- **配置与部署**:完成编码后,将项目打包成WAR文件,然后上传到应用服务器的webapps目录下,启动服务器即可。 4. **扩展与定制** - **插件系统**:Lerx CMS拥有丰富的插件库,如广告管理、邮件发送、投票模块等...
MVC(Model-View-Controller)框架在该系统中起到了关键作用,它将应用程序分为三个主要组件:模型(M)、视图(V)和控制器(C)。模型层采用DAO(Data Access Object)模式,负责与数据库的交互,确保数据的存取和...
【标题】"基于jsp+jdbc+servlet的个人CMS系统,课程大作业.zip"是一个典型的Web应用项目,主要采用Java技术栈构建,包括JSP(JavaServer Pages)、Servlet和JDBC(Java Database Connectivity)。这个项目是一个内容...
6. **JSTL和EL表达式**:JSP标准标签库(JSTL)和表达式语言(EL)可以提升JSP页面的可读性和可维护性,避免在页面中嵌入过多的Java代码。 7. **安全机制**:Lerx可能集成了如Spring Security或Apache Shiro等安全...
- **Java在CMS中的应用**:Java的面向服务架构(SOA)和企业级框架(如Spring, Hibernate)使CMS具有良好的扩展性和可维护性。 - **JSP在CMS中的角色**:JSP用于呈现内容,根据用户请求动态生成HTML页面,与后端...
4. **JSTL(JavaServer Pages Standard Tag Library)**:这是一个标准的标签库,提供了许多用于处理常见任务的标签,如循环、条件判断、XML操作等,降低了JSP页面的复杂性。 5. **Servlet**:JSP最终会被编译成...
这通常是一个教学或实践项目,目的是让学生熟悉Web应用程序的开发流程,特别是涉及到服务器端编程和数据库操作的部分。 【描述】中的内容与标题一致,进一步确认这是一个基于JSP的酒店管理系统项目,可能包含了使用...
7. **JSTL(JavaServer Pages Standard Tag Library)**:可能用到JSTL标签库,如`<c:forEach>`来循环遍历数据。 通过这些知识点,开发者可以创建一个灵活的、可扩展的分类系统,适应不断变化的网站内容需求。
4. 模板引擎:Jeecms支持自定义模板,方便进行前端样式定制,同时提供了丰富的标签库供开发者使用。 5. SEO优化:系统内置SEO友好功能,如关键词设置、自定义URL、静态化等,有助于提高搜索引擎排名。 四、应用...
JSP可以使用内置的动作标签(如`<jsp:include>`、`<jsp:forward>`)或自定义标签库(如JSTL)来实现页面间的导航和数据传递。 2. 控制层:Servlet在此扮演关键角色,处理HTTP请求,调用业务逻辑,然后将结果返回给...
JSP 2.0 引入了许多新特性,如 JSP 表达式语言 (EL) 和 JSP 标准标签库 (JSTL),这些特性极大地简化了开发者的工作,并提高了开发效率。EL 允许开发者直接在 JSP 页面中访问 JavaBeans 属性,而无需编写复杂的 Java ...
KindEditor广泛应用于博客系统、论坛、CMS(内容管理系统)、在线问答等Web应用,提供用户方便地编辑和发布富文本内容。 综上所述,KindEditor编辑器是JSP开发中的一个强大工具,它能提供完善的在线文本编辑功能,...
- **Java基础**:Jeecms-2012基于Java EE平台,利用Servlet、JSP和JSTL等技术实现。 - **MVC模式**:采用Model-View-Controller设计模式,分离业务逻辑、数据处理和视图展示,提高代码可读性和可维护性。 - **...
集成KindEditor到JSP项目中,首先需要将KindEditor的资源文件(如js、css、images等)部署到服务器的公共目录,然后在JSP页面中通过`<script>`标签引入KindEditor的JavaScript库。接下来,我们需要创建一个div元素...
6. **JSP**:学习隐式对象,掌握EL和JSTL,理解JSP标签的使用。 7. **Cookie/Session**:了解它们的生命周期,以及如何在应用程序中使用。 **三、五大框架** 1. **Struts2**:深入理解Action,值栈的工作原理,对比...