大家好,今天小编来为大家解答以下的问题,关于jspsmart.jar,jsp实用教程第三版3版这个很多人还不知道,现在让我们一起来看看吧!
在Java Web开发领域,JSP标签库(TagLib)是一种非常实用的技术,它可以帮助开发者简化JSP页面的开发过程,提高开发效率。而JSpsmart.jar作为JSP标签库中的一个佼佼者,凭借其丰富的功能和应用场景,受到了广大开发者的喜爱。本文将深入解析JSpsmart.jar的奥秘与应用,帮助大家更好地掌握这门技术。
一、JSpsmart.jar简介
JSpsmart.jar是JSP标签库中的一个重要组成部分,它提供了一系列实用的标签,包括数据绑定、表单处理、数据访问等。这些标签可以帮助开发者快速实现各种功能,从而提高开发效率。
二、JSpsmart.jar的安装与配置
1. 下载JSpsmart.jar
我们需要从JSpsmart.jar的官方网站或其他途径下载该jar包。下载完成后,将其放置在Web应用的WEB-INF/lib目录下。
2. 配置web.xml
在web.xml文件中,我们需要添加JSpsmart.jar对应的标签库描述符(TLD)。
“`xml
“`
这样,我们就可以在JSP页面中使用JSpsmart.jar提供的标签了。
三、JSpsmart.jar标签库详解
JSpsmart.jar提供了丰富的标签,以下列举一些常用标签及其功能:
| 标签名称 | 功能描述 |
|---|---|
| 用于创建表单,支持数据绑定、表单验证等功能 | |
| 用于创建提交按钮,可以设置按钮样式、提交方式等 | |
| 用于遍历集合,支持条件判断、循环次数等 | |
| 用于条件判断,类似于Java中的if语句 | |
| 用于获取或设置对象属性,类似于Java中的getter和setter方法 | |
| 用于包含其他JSP页面,实现页面模块化 | |
| 用于输出内容,类似于Java中的System.out.println方法 |
四、JSpsmart.jar应用实例
以下是一个使用JSpsmart.jar标签库的简单示例:
“`jsp
<%@ taglib uri="
JSP 页面上传图片 提交到servlet控制层 如何实现
JSP:
<%@ page language=”java” pageEncoding=”GBK”%>
<%@ page import=”cn.edu.bit.business.*,java.util.*,cn.edu.bit.Object.*,com.jspsmart.upload.*” errorPage=”error.jsp”%>
<%– page import=”org.apache.commons.fileupload.*;”–%>
<%
String path= request.getContextPath();
String basePath= request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;
%>
<html>
<head>
<title>Lomboz JSP</title>
<style type=”text/css”>
<!–
@import url(“../../css/OSX.css”);
–>
</style>
</head>
<SCRIPT language=javascript>
function CheckForm()
{
if(document.add_student_Form.name.value==””)
{
alert(“请输入姓名!”);
return false;
}
if(document.add_student_Form.image.value==””)
{
alert(“请上传图片!”);
return false;
}
document.add_student_Form.submit();
if(document.add_student_Form.advisor.value==””)
{
alert(“暂时没有指导老师,无法创建学生!”);
return false;
}
document.add_student_Form.submit();
}
</SCRIPT>
<body bgcolor=”#CAD7F7″ topmargin=”100″>
<%
ArrayList gl=(ArrayList)Grade_Manager.getGradeList();
ArrayList Tl=(ArrayList)Teacher_Manager.getTeacherList2();
%>
<div align=”center”>
<form name=”add_student_Form” method=”post” enctype=”multipart/form-data” action=”<%=basePath%>/add_student”>
<table width=”500″border=”0″ cellspacing=”1″ cellpadding=”1″ class=”tableBorder”>
<tr>
<td colspan=”2″ align=”center” background=”../../images/guanli/admin_bg_1.gif” class=”whitenormal”>添加学生</td>
</tr>
<tr>
<td width=”97″ align=”center” bgcolor=”F1F3F5″ class=”normalText”>姓名:</td>
<td width=”396″ bgcolor=”F1F3F5″><input name=”name” type=”text” id=”name” class=”textBox”></td>
</tr>
<tr>
<td align=”center” bgcolor=”F1F3F5″ class=”normalText”>性别:</td>
<td bgcolor=”F1F3F5″><input type=”radio” name=”radiobutton” value=”male” checked/>
<span class=”normalText”>男</span><input type=”radio” name=”radiobutton” value=”female”/>
<span class=”normalText”>女</span></td>
</tr>
<tr>
<td align=”center” bgcolor=”F1F3F5″ class=”normalText”>年级:</td>
<td bgcolor=”F1F3F5″>
<select name=”grade”>
<%
Iterator iter= gl.iterator();
while(iter.hasNext())
{
Grade grade=(Grade)iter.next();
%>
<option value=”<%=grade.getId()%>”><%=grade.getName()%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<td align=”center” bgcolor=”F1F3F5″ class=”normalText”>指导老师:</td>
<td bgcolor=”F1F3F5″>
<select name=”advisor”class=”textBox”>
<%
Iterator it= Tl.iterator();
while(it.hasNext())
{
Teacher teacher=(Teacher)it.next();
%>
<option value=”<%=teacher.getTeacher_id()%>”><%=teacher.getTeacher_name()%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<td align=”center” bgcolor=”F1F3F5″ class=”normalText”>图片:</td>
<td bgcolor=”F1F3F5″><input type=”file” name=”image”>
</td>
</tr>
<tr align=”center”>
<td colspan=”2″ bgcolor=”F1F3F5″><input type=”button” name=”Submit” value=”提交” onClick=”CheckForm()”></td>
</tr>
</table>
</form>
</div>
</body>
</html>
其中只有图片上传的,你还要下载一个jspsmart.jar或者jspSmartUpload.jar组件
Servlet:
package cn.edu.bit.servlet;
import java.io.*;
import java.util.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.jspsmart.upload.*;
import cn.edu.bit.business.Student_Manager;
/**
*
*@EricWong
*2007-7-21
*/
public class AddStudentServlet extends HttpServlet{
private ServletConfig config;
String image;
final public void init(ServletConfig config) throws ServletException{
this.config= config;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
RequestDispatcher requestDispatcher= request.getRequestDispatcher(“guanli/student/login.jsp”);
requestDispatcher.forward(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
HttpSession ses= request.getSession();
try{
SmartUpload su=new SmartUpload();
String ext=””;
su.initialize(config, request, response);
su.setAllowedFilesList(“jpg,gif”);
su.upload();
com.jspsmart.upload.Files file= su.getFiles();
image=(String)file.getFile(0).getFileName();
Calendar calendar= Calendar.getInstance();
String filename= String.valueOf(calendar.getTimeInMillis());
int index= image.indexOf(“.”);
image= image.replace(image.substring(0, index), filename);
System.out.println(image);
su.getFiles().getFile(0).saveAs(“./images/student_image/”+ image,su.SAVE_VIRTUAL);
String name= su.getRequest().getParameter(“name”);
int advisor= Integer.parseInt(su.getRequest().getParameter(“advisor”));
String sex=(String)su.getRequest().getParameter(“radiobutton”);
String grade=(String)su.getRequest().getParameter(“grade”);
int grade_id= Integer.parseInt(grade);
Student_Manager.Add_Student(name,grade_id,image,sex,advisor);
}
catch(Exception e){
System.out.println(“fail”);
e.printStackTrace();
}
RequestDispatcher requestDispatcher= request.getRequestDispatcher(“guanli/student/add_success1.jsp”);
requestDispatcher.forward(request,response);
}
}
我是把相应的图片先改名再存入服务器,防止重名,而且LZ要注意相对路径的设定方法,如有其它问题,可以追问…希望能帮到你
php,jsp,asp三者优缺点…
php优点
1.跨平台,性能优越,跟Linux/Unix结合别跟Windows结合性能强45%,并且和很多免费的平台结合非常省钱,比如LAMP(Linux
/Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)结合,或者数据应用够大可以考虑换
PostgreSQL或者Oracle,支持N种数据库。(N>=10)
2.语法简单,如果有学习C和Perl的很容易上手,并且跟ASP有部分类似。有成熟的开发工具,比如NuPHPed,或者Zend
Studio等等,再Linux平台下可以使用Eclipse等等。
3.目前主流技术都支持,比如WebService、Ajax、XML等等,足够应用。
4.有比较完整的支持,比如使用ADODB或者PEAR::DB做数据库抽象层,用Smarty或者smarttemplate做模板层,如果是PHP
5.1的话,还能够使用PDO(PHPDataObject)来访问数据库。
5.有很多成熟的框架,比如支持MVC的框架:phpMVC,支持类似ASP.net的事件驱动的框架:Prado,支持类似RubyOn
Rails的快速开发的框架:Cake等等,足够满足你的应用需求。
6.PHP5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。
7.有成熟的社区来支持PHP的开发。
8.
目前已经很多大型应用都是使用PHP,比如淘宝网、Yahoo、163、Sina等等大型门户,很多选用PHP来作为他们的开发语言,所以大型门户都能够选用它,我想足够能够你的使用了。
9.有很多开源的框架或开源的系统可以使用,比如比较知名的开源框架有Zend
Framework、CakePHP、CodeIgniter、symfony等,开源论坛有Discuz!、Phpwind等,开源博客
WordPress,开源网店系统如Ecshop、ShopEx等,开源的SNS系统如UCHome、ThinkSNS等。
php缺点
1.对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。
2.语法不太严谨,比如变量不需要定义就可以使用,在c,java,c++中变量是必须先定义以后才可以使用的。
3.也许有经验的PHP程序员最感到痛苦的地方是PHP的解释运行机制。这种运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量,还是类的静态成员,都会在页面执行完毕后被清空。以JSP为例,在JSP中,Java
Bean的scope有四种有效值:Page、Application、Session、Request,分别对应页面、程序、会话、请求四种生存期。但在PHP中,只有Page一种生存期。
JSP的优势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
JSP的劣势
(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)
Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和。class文件,以及对应的版本文件。
ASP的特点:
1、任何开发工具皆可发展ASP
只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPageExpress、
FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
2、通吃各家浏览器
由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。
3、语言相容性高
ASP与所有的ActiveXScript语言都相容,除了可结合HTML,VBScript、JavaScript、Active
X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(ThirdParty)所提供的语言。
4、隐密安全性高
如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因为ASP程序先于网站服务(Web
Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
5、易于操控数据库
ASP可以轻易地通过ODBC(OpenDatabase
Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”
文件当成数据库用。
6、面向对象学习容易
ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。
如何在spring mvc中上传图片并显示出来
(1)在spring mvc的配置文件中配置:
<beanid=”multipartResolver”class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”>
<propertyname=”uploadTempDir”value=”/tmp”/><!–临时目录–>
<propertyname=”maxUploadSize”value=”10485760″/><!–10M–>
</bean>
(2)文件上传表单和结果展示页fileupload.jsp:
<%@pagelanguage=”java”contentType=”text/html;charset=UTF-8″
pageEncoding=”UTF-8″%>
<%@taglibprefix=”mvc”uri=””%>
<%@taglibprefix=”c”uri=””%>
<html>
<head>
<title>SpringMVC文件上传</title>
</head>
<body>
<h2>图片文件上传</h2>
<mvc:formmodelAttribute=”user”action=”upload.html”
enctype=”multipart/form-data”>
<table>
<tr>
<td>用户名:</td>
<td><mvc:inputpath=”userName”/></td>
</tr>
<tr>
<td>选择头像:</td>
<td><inputtype=”file”name=”file”/></td>
</tr>
<tr>
<tdcolspan=”2″><inputtype=”submit”value=”Submit”/></td>
</tr>
</table>
</mvc:form>
<br><br>
<c:iftest=”${u!=null}”>
<h2>上传结果</h2>
<table>
<c:iftest=”${u.userName!=null}”>
<tr>
<td>用户名:</td>
<td>${u.userName}</td>
</tr>
</c:if>
<c:iftest=”${u.logoSrc!=null}”>
<tr>
<td>头像:</td>
<td><imgsrc=”${u.logoSrc}”width=”100px”height=”100px”></td>
</tr>
</c:if>
</table>
</c:if>
</body>
</html>
(3)后台处理UploadController.java:
packagecn.zifangsky.controller;
importjava.io.File;
importjava.io.IOException;
importjavax.servlet.http.HttpServletRequest;
importorg.apache.commons.io.FileUtils;
importorg.springframework.stereotype.Controller;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RequestMethod;
importorg.springframework.web.bind.annotation.RequestParam;
importorg.springframework.web.multipart.MultipartFile;
importorg.springframework.web.servlet.ModelAndView;
importcn.zifangsky.model.User;
importcn.zifangsky.utils.StringUtile;
@Controller
publicclassUploadController{
@RequestMapping(value=”/form”)
publicModelAndViewform(){
ModelAndViewmodelAndView=newModelAndView(“fileupload”,”user”,newUser());
returnmodelAndView;
}
@RequestMapping(value=”/upload”,method=RequestMethod.POST)
publicModelAndViewupload(Useruser,@RequestParam(“file”)MultipartFiletmpFile,HttpServletRequestrequest){
ModelAndViewmodelAndView=newModelAndView(“fileupload”);
if(tmpFile!=null){
//获取物理路径
StringtargetDirectory=request.getSession().getServletContext().getRealPath(“/uploads”);
StringtmpFileName=tmpFile.getOriginalFilename();//上传的文件名
intdot=tmpFileName.lastIndexOf('.');
Stringext=””;//文件后缀名
if((dot>-1)&&(dot<(tmpFileName.length()-1))){
ext=tmpFileName.substring(dot+1);
}
//其他文件格式不处理
if(“png”.equalsIgnoreCase(ext)||”jpg”.equalsIgnoreCase(ext)||”gif”.equalsIgnoreCase(ext)){
//重命名上传的文件名
StringtargetFileName=StringUtile.renameFileName(tmpFileName);
//保存的新文件
Filetarget=newFile(targetDirectory,targetFileName);
try{
//保存文件
FileUtils.copyInputStreamToFile(tmpFile.getInputStream(),target);
}catch(IOExceptione){
e.printStackTrace();
}
Useru=newUser();
u.setUserName(user.getUserName());
u.setLogoSrc(request.getContextPath()+”/uploads/”+targetFileName);
modelAndView.addObject(“u”,u);
}
returnmodelAndView;
}
returnmodelAndView;
}
}
在上面的upload方法中,为了接收上传的文件,因此使用了一个MultipartFile类型的变量来接收上传的临时文件,同时为了给文件进行重命名,我调用了一个renameFileName方法,这个方法的具体内容如下:
/**
*文件重命名
*/
publicstaticStringrenameFileName(StringfileName){
StringformatDate=newSimpleDateFormat(“yyMMddHHmmss”).format(newDate());//当前时间字符串
intrandom=newRandom().nextInt(10000);
Stringextension=fileName.substring(fileName.lastIndexOf(“.”));//文件后缀
returnformatDate+random+extension;
}
注:上面用到的model——User.java:
packagecn.zifangsky.model;
publicclassUser{
privateStringuserName;//用户名
privateStringlogoSrc;//头像地址
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetLogoSrc(){
returnlogoSrc;
}
publicvoidsetLogoSrc(StringlogoSrc){
this.logoSrc=logoSrc;
}
}
至此全部结束
效果如下:
(PS:纯手打,望采纳)
关于jspsmart.jar和jsp实用教程第三版3版的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。




