`

jsp简单详谈

    博客分类:
  • js
阅读更多
在BIN目录里面启动服务器(startup),然后在浏览器里面输入http://localhost(服务器IP):端口号(8080)/就可以看到自己的服务端.
如果要运行程序:
例如:http://192.168.1.77:8080/mywork/table.jsp
192.168.1.77是服务器IP。
8080是端口号。
mywork是项目名。
table.jsp是文件名。
解决乱码:
一定要把这一行放到jsp文件的第一行:
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>

九大对象:
第一大对象:Out

Out.print();输出数据到浏览器,和<%=  %>一样的效果.
<%   %>括号中间写JAVA代码。
<%=变量%>输出到浏览器

1.       网页跳转.
form表单的跳转,在form里面输入action=”*.jsp”;
例如:
<form name="enter" action="文件名.jsp" onsubmit="return 函数名()">
再<input type="submit" value="提交" name="refer">,点击提交后就可以就可以跳转到*.jsp页面.
如果输入为空的话,不想让页面跳转,可以在函数里面加入return false;不满足条件就不往下执行.全部满足条件的时候就跳转到另一个页面.
2.       javascript跳转:
例如:
function test(){
        //window.location.href="*.jsp";   这个就像超链接,可以返回
        window.location.replace("*.jsp");  这个就是把以前的给替代了,所以不能返回.
}
在按钮上面调用这个函数方法就可以执行跳转了.
Button类型按钮:
function xxx(){
        document.form名.submit();       
}
//调用这个方法的按钮会自动执行form里面的action,跳转到另一个页面.

动态修改action:
function xxx(){
        document.enter.action="color.jsp";  //更改action里面的页面,下面的语句不能注释,要靠它提交,不然会没反映.
        document.enter.submit();             //调用这个方法的按钮会自动执行form里面的action,跳转到另一个页面.
}

function text(){
        document.enter.action=document.enter.name.value;  //在文本框上面输入什么页面就进入什么页面.
        document.enter.submit();   //上面改值后用这个提交.
}


****(第二大对象)request对象:获取客户端提交的数据。
  out  向客户端输出数据
  request 向客户端请求数据
客户端的跳转方式:
function zhuce(){
        document.enter.action="requestTest.jsp";
        document.enter.submit();
}
<%
out.print("<table border=1>");
out.print("<tr>");
out.print("<td>"+"姓名:"+request.getParameter("name")+"</td>");
out.print("</tr>");
%>
执行上面这段代码将会在另外一个页面输出你输入的姓名.

l         表单的两种提交方式get与post
<form name="enter" action="array.jsp" onsubmit="return login()" method="post">

解决乱码的三种方式:
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%      request.setCharacterEncoding("GBK") ; 
            response.setCharacterEncoding("GBK")
%>

Get和post提交的区别:
1.Get不安全,Post安全(因为get把里面的信息全部显示在了地址栏上面,而post没有)
2.get有长度限制,post没有长度限制.
下面是get提交后产生的地址栏的地址:
http://192.168.1.77:8080/mywork/requestTest.jsp?name=%CD%F5%BA%A3&age=22&sex=%C4%D0&native=%C0%E4%CB%AE%CC%B2&like=%BF%B4%CA%E9&like=%CC%B8%C7%E9&like=%CB%AF%BE%F5&intro=%09%0D%0A%09tell+me+why+%0D%0A%09%D7
下面是post提交后产生的地址栏的地址:
http://192.168.1.77:8080/mywork/requestTest.jsp

服务端的跳转方式:
第三大内置对象:response (重定向)
只发生在请求的范围之内(只能从上一个页面传到另一个页面).
Response.sendRedirect(“http://www.baidu.com”);

response 封装了jsp产生的响应,然后被发送到客户端以响应客户的请求

hidden:隐藏表单域.
就是把一个框架给隐藏起来,但是它的值还在这里,只是不显示出来而已,也可以用它来传值,并且在另一个页面显示出来.
例如:
<input type="hidden" name="userName" value=<%=request.getParameter("userName")%>>

第四大内置对象session:
在当前打开的浏览器内,多个页面的数据共享.
       session.setAttribute("name",request.getParameter("userName"));
       session.setAttribute("pass",request.getParameter("password"));
       session.getAttribute("name");
session.getAttribute("pass");                                                                          

第一大指令:page
用指令导入一个包:
<%@ import=”包名”%>

2010-4-19
在一个项目中不能用过多的session,因为它会导致系统的性能下降,所以我们要慎用session。
一般是用在保存用户的登录信息(用户信息、权限、资源)、频繁使用的信息。

第五大内置对象(application):可以在多个浏览器内共享数据
application>session>request
session保存的数据只在当前浏览器有效,只要不关闭浏览器,就能实现多个浏览器之间的共享。
Application保存的数据在当前服务器里有效,只要不关闭服务器,也能实现多个浏览器之间的共享。
application对象 application对象实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问.服务器的启动和关闭决定了application对象的生命.它是ServletContext类的实例.
session对象 session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是HttpSession类的实例.

第一大指令:page
导入自己的类:
<%@ page import=”包名.类名”%>

2010-4-22
l         JSP中的静态包含与动态包含
第二大指令:include
重复的代码就抽取出来,如:一个表的欢迎语句就可以抽取出来,因为每个表都要有欢迎语句:
1.静态包含<%@ include file=”*.jsp”%>
第一大动作:<jsp:include >
2.动态包含<jsp:include page=”*.jsp” flush=”true”> </jsp:include>

这段代码放在哪里就显示在哪里!!
静态包含和动态包含的区别:
1.       单独编译(动态包含)与统一编译(静态包含)→变量共享。
2.检查包含文件变化(动态包含刷新的时候总是会去检查文件,而静态包含却不一定会去检查文件)。
3.动态包含可以带参数,静态包含不可以带参数。

第二大动作:<jsp:useBean>
语法:
       <jsp:useBean class=”包名.类名” id=”aa” />
<jsp:useBean class=”包名.类名” id=”aa” scope=”session” />
<%
//scope=”session” 这是设置它的有效范围 就相当于session.setAttribute();
//id="person"就相当于 PersonDB person=new PersonDB();生成person对象
%>

  动态包含与静态包含 
<jsp:include>动态包含与静态包含
it  分类:jsp

动态INCLUDE
用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

(这里你必须使用flush="true",你不能使用false值.缺省值为false )
静态INCLUDE
用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>
===================================================================
1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体
动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道了)
2.正是因为这样,动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然, 还好它和include它的页面的request范围是一致的.
而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.

  flush属性: 用true ,表示页面可刷新。

第六大内置对象:page
<jsp:useBean class=”包名.类名” id=”生成的对象的名字” scope=”session” />
如果不写scope=”session” 就默认为第六大内置对象。
它的数据只作用于当前页面
第三大动作:<jsp:getProperty  name=”生成对象的名字” property=”对象的属性(age)”>
从对象中取出属性值:<jsp:getProperty name="bean对象" property="bean对象属性" >
例如:<jsp:getProperty property="age" name="person"/>

第四大动作<jsp:getProperty name=”bean对象实例” property=”age” value=”12”/>

例如: <jsp:setProperty property="age" name="person" value="12"/>

参数赋值法:<jsp:setProperty name=”bean对象实例” property=”age” param=”参数属性”/>
就是说你用?号传值法把你输入的值给传到param里面。

1.创建bean对象:
<jsp:useBean id="bean对象引用名" class="包.类" scope="对象作用域(page(默认)/request/session/application)" />

2.为对象设置属性值:
   <jsp:setProperty   name="bean对象" property="bean对象属性" param="请求参数名(表单元素名)">
   <jsp:setProperty   name="bean对象" property="bean对象属性" value="变量的值">   
注意:属性名区别大小写,param 和 value只能单独用,不能合用

2.     从对象中取出属性值:<jsp:getProperty name="bean对象" property="bean对象属" >






                               set
                       
                 form提交
                               post 
1.客户端跳转                      href
               修改地址提交法   
                                  replace



                重定向:response.sendRedirect(“http://www.baidu.com”);
2.服务端跳转
                <jsp:forward page=”网址”/>


<jsp:forward page="header.jsp"></jsp:forward>
第五大动作:<Jsp:forward page=”*.*”></jsp:forward>
只能跳到当前文件里面的文件,不能跳到www.baidu.com网.
response.sendRedirect(“http://www.baidu.com”);可以跳转到所有的网站和jsp文件.
<jsp:forward page=”网址”>和response.sendRedirect(“网址”);的区别:
1.       地址栏的区别:跳转的时候, response.sendRedirect(“”);的地址栏改变了,而<jsp:forward>的地址栏没有改变
分享到:
评论

相关推荐

    SiteTeam企业自助建站软件 4.6

    如果你觉得软件中自带的模板不能满足你的需求,请找我们技术人员定制网站模板,价格介时详谈。 客服QQ列表: 客服001:28693177 客服002:78917253 客服003:30909372 客服005:47558909 客服004:88596684 ...

    li_3ck_02a_1118.pdf

    li_3ck_02a_1118

    基于MATLAB的牛顿迭代法实现

    基于MATLAB的牛顿迭代法实现

    mellitz_3ck_01_0319.pdf

    mellitz_3ck_01_0319

    2025探索银行业人工智能驱动技术转型的投资回报率

    内容概要:文章阐述了银行采用人工智能(AI)技术替代传统系统的紧迫性和收益,讨论了通过构建现代化的数据和技术平台实现效率提升的方法,同时强调实施过程中确保数据质量和建立信任的重要性。文中提及,在金融行业中,若想优化业绩则必须拥抱AI带来的机遇,并为此进行经营模式的革新。根据Workday主办的研讨会内容,PwC金融服务风险与监管领导和Workday金融服务高层指出了大部分银行对AI认知不足的问题,强调AI在金融、人力资源以及IT等领域的广泛应用潜力及具体应用场景,如欺诈检测、技能映射和财务管理方面的作用。并且提到了AI部署过程中可能出现的技术与非技术难题及相应解决办法,鼓励金融机构及时投资建设新型基础设施,以保持竞争力。 适用人群:银行及其他金融机构管理人员;金融科技领域的专业研究人员;对企业数字化和智能化转型感兴趣的商业分析师、投资者;从事信息技术咨询工作的顾问。 使用场景及目标:本文可以帮助金融机构制定合理的技术发展战略规划,评估是否有必要推进AI技术转型,同时也为希望涉足银行科技项目的开发者提供了宝贵的市场洞察,帮助理解行业内普遍存在的困难与潜在的市场需求。此外,对于想要了解银行

    matlab程序代码项目案例论文+程序 基于在线优化的快速模型预测控制Fast model predicitive control with matlab interface.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_043071]Phase Manager and a Scalable Batching Solution.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_044386]1769-SM2 Compact I-O to DSI Module - Multi Drive Mode Operation - with.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_041232]Monitor I-O Connections in Logix.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    chromedriver-linux64-136.0.7058.0.zip

    chromedriver-linux64-136.0.7058.0.zip

    [AB PLC例程源码][MMS_042504]Logix5000 interface to Atlas-Copco Tool Controller over EtherNet-IP.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_042349]How to read-write data to-from a PLC using OPC in Visual Basic 6.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    电力工程领域中背压热电联产电厂的设计与参数计算

    内容概要:本文档介绍了背压热电联产(CHP)发电厂的详细设计步骤,涵盖确定各状态点的压力、温度、比焓以及质量流率的具体方法。主要内容围绕计算净电功率、燃料消耗及其效率展开,并提供了T-s图绘制的指南。针对每个组件(如蒸汽轮机、冷凝器、除氧器等),都列出了详细的效率假设和压力损失表,为实际工程应用提供了宝贵的参考资料和操作指导。同时,该作业任务要求学生从给定初始值中选择合适的操作条件进行系统模拟,并利用课程讲义和Moodle平台资料完成计算流程。 适用人群:对能源转换和动力设备设计感兴趣的学生或者初涉该领域的工程师。 使用场景及目标:旨在帮助学员深入了解并掌握背压热电联产装置的工作原理和技术指标计算的方法论,通过实践练习提高他们的问题解决能力。 其他说明:文档强调了稳态运行假设的重要性,即物质平衡等于能量输入等于输出的原则,并鼓励参与者借助附录提供的典型操作参数图表来寻找解决问题的方向。此外,它还特别指出对于一些变量值求解可能需要迭代法来进行调整,直至获得稳定结果。提交的报告必须含有一份详细的T-s图和其他必要附件。

    机器学习-市财政收入分析(含数据集)

    机器学习_市财政收入分析(含数据集)

    [AB PLC例程源码][MMS_046989]KAT with Code Sequencer.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    tracy_3cd_01_0318.pdf

    tracy_3cd_01_0318

    lusted_3cd_01_0918.pdf

    lusted_3cd_01_0918

    基于51的自动分拣系统设计20250307

    题目:基于51的自动分拣系统设计 主控:AT89C52 测距模块:超声波测距模块 甲醛传感器(ADC0832+滑动变阻器模拟) 粉尘传感器(PCF8591+滑动变阻器模拟) 净化模块(继电器驱动蓝灯) 排风模块(继电器驱动绿灯) 电源电路(5V降压为3.3V供电) 显示模块(LCD1602) 声光报警 按键(3个,切换阈值选择,阈值加减) 检测物体:开关模拟 电机驱动模块(继电器驱动直流电机转动) 功能: 1.显示屏显示甲醛,粉尘浓度可以切换设置阈值。 2.通过甲醛传感器检测车间环境,大于阈值时声光报警并启动净化模块。 3.通过粉尘传感器检测车间环境,大于阈值时声光报警并启动排风模块。 4.采用超声波传感器进行物体超高监测异常(大于XX距离)时触发声光报警 5.检测到物体(开关闭合)直流电机转动(模拟传送带)

    network-server

    network_server

    [AB PLC例程源码][MMS_046691]Integrated Architecture Foundations of Modular Programming.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

Global site tag (gtag.js) - Google Analytics