java web的javaweb登录界面代码问题

【JAVA】怎样阅读一个新的javaweb项目的源代码_大家都在看_一览品牌
客服热线:
400-884-1001
【JAVA】怎样阅读一个新的javaweb项目的源代码
【JAVA】怎样阅读一个新的javaweb项目的源代码
来源:&&&&围观人数:4660
php***** 评 【JAVA】怎样阅读一个新的javaweb项目的源代码
JAV*****___1c6ev3jztj 评 【JAVA】怎样阅读一个新的javaweb项目的源代码
JAV*****___1c6ev3jztj 评 【JAVA】怎样阅读一个新的javaweb项目的源代码
pjp***** 评 【JAVA】怎样阅读一个新的javaweb项目的源代码
账&&&&号:
密&&&&码:
还不是会员,
大家都在看java web 开发过程中常见的一些错误 -
- ITeye博客
博客分类:
现在通常人们讨论和实现Java WEB应用时,往往过度关注框架和平台,对常见实现的各种模式未有深入的考虑。自从在IBM DevelopWork上见到一个名词"错误模式",就一直仔细研究和收集各种错误模式,现在就针对各WEB应用中最常见的增删改查,谈一下常碰到的错误模式。
增加、编辑时常见错误
1、没有进行,界面上的效验问题&&&&&&&&&&&&&&&&&&&&&&&&&&&
&& 有人认为,这个不算错误,呵呵,那我也不说什么了。很多情况下,初学的人会完全忽略这一块,刚开始我就是的,还感觉这个就像程序把门的第一关口啊,最好能提前预防。
一般情况下,都是用javascript直接实现的,也有基于框架的后台验证,如DotNet和WebWork的验证器等。通用的方法,是充分发挥正则验证的潜力来解决好这一块。
2、后台效验问题&&& JS+RPC OR Server
前台的效验完毕后,往往还需要进行后台的逻辑效验,如检查是否重名等。一般是通过一组查询来实现的。因为只是只读的查询,个人认为,怎么实现都没关系。通常是在后台,提交数据库前验证。其实业可以通过ajax技术,在前台验证,随着技术的发展,我想还是通过AJAX统一到前台实现比较一致。
3、更新失败返回问题
更新失败的因素是多方面的,如数据连接断开等。往往,很多人都没有进行相关的保护,没有相应的提示,或者提示返回后,客户的输入就丢失了。这些都是应该仔细考虑并解决的问题,很可惜,再大量学习各类框架和平台后,相信很多人都没有仔细的在这一块加上那怕一点点保护。
4、编辑载入失败返回问题
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....&&&
5、编辑载入,值还原问题,如回车丢失,空格丢失等
有时候,Html标签写的不好的时候,可能会丢值,如&&& 回车,空格 ,&等符号
6、更新时,多步操作的事务保护机制不健全
这一点,本不该写在此处,不过,我一直觉得这是个很重要的问题,所以还是加上。也许有人会说,我用Hibernate,这个问题就不存在了.....还是要重视啊,我见过有初学者,没有很好的利用Hibernate的声明事务标签,或者根本不声明...... 而且多步操作不写在一个方法里面,也不用手工的事务控制...寒,其实有些项目我自己都没做到,因为各方面的原因@%^@#^@#^@^,悲哀ing.....
删除常见错误
1、找不到记录时错误
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、关联数据不能自动检查并返回信息
对于一些有关联的数据,应该通过检查机制保护破坏性的删除操作。&&&
3、自动删除关联数据
这个对于一些POJO设计得非常好的系统,完全不用考虑的,呵呵不过,大家还是要很清晰的了解这种删除的必要性,感觉初学者都忽略这些问题。
4、删除时没有清晰提示
通过JS保护只有一行代码,就可以给客户一个避免错误操作的机会,何乐而不为呢,用框架的同仁们,你们这么做了吗?实际的系统,用户不会忘了提这一点的。
查看时错误
1、找不到数据时错误
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、一些值得显示问题 如 回车、空格
& 加几行转码的函数就可以避免,很多人忽略了,寒,如回车转为&BR&,空格转为 &
3、下拉表单数据的回显问题 值-名对,显示值,而不显示名
下拉表单输入时,大家都有解决方案了,回显,就是一个查询,请加上吧,不要让自己眼睛不舒服。
分页浏览时错误
1、找不到数据时的正确返回
这个是个比较初级的问题,不过确实出现过,还是写写,看看自己忘了不.....
2、翻页后 条件保持问题(特别时有特殊字符时,如回车,"\"","\'"等)
要把条件传递到下一个页面阿....
3、翻页的效率问题
很多人没仔细考虑,比如我自己,刚用Hibernate时,直接用一个完全查询的HQL,取List.Count解决取总记录的方法,结果,发现,这个查询被执行了!!!现在改成一个专门取总行数的Count查询...当然用专门对数据库优化过的SQL和存储过程,永远是效率最高的方法
查询时错误
1、查询条件初始化问题
查询条件如日期等,为什么不给客户一个最常用的时间段呢,可以避免用户的操作
其实还有很多需要注意的细节容易出问题。如格式验证...只读字段的控制.等等
一个完整的增删改查应该有几个部分的代码
1.添加载入
控制添加数据的默认初始化值
在Struct或者WebWork中,就是一个Action +一个视图
2.添加提交
& 将用户提交的新增数据,加入数据库
&& 在Struct或者WebWork中,就是一个Action
3.编辑载入
&& 从库中载入已有的某条数据方便编辑
&& 在Struct或者WebWork中,就是一个Action +一个视图
4.编辑提交
&& 将用户提交的修改数据,更新到库中
&& 在Struct或者WebWork中,就是一个Action
5.查看记录
&&&&& 从库中载入已有的某条数据查看
&&&&& 在Struct或者WebWork中,就是一个Action +一个视图
6.删除提交
&&&& 将用户指定的记录删除
&&&& 在Struct或者WebWork中,就是一个Action
7.载入查询
&&&& 初始化查询界面
&&&& 在Struct或者WebWork中,就是一个Action+一个View
8.查询提交
&&&&& 接受查询界面的提交,并组合为查询结果发送给一个View
&&&& 在Struct或者WebWork中,就是一个Action+一个View
&&&& 也可以将请求转交给分页浏览页面
9.分页浏览
&&&& 根据查询条件和页号,显示特定数据页的数据
&&&& 在Struct或者WebWork中,就是一个Action+一个View
这里,我没有专门写出formBean,个人认为FormBean只是一个工具
当然根据情况各种Action 和View可以进行各种整合,不过个人觉得,不管如何组合,这几个环节都是很必要的,必须思路非常清晰才好。
附上我以前总结的一些常见的错误检查表,给同事看的...
******************************************************************************************************
JAVA WEB应用常见的错误
在本系统中一些常见Bug和对策
1.Null指针错误
A.引用的Bean未在 Hibernate配置文件,Spring配置文件中正确的配置
B.调用的Session及Request 未能正确的取到
C.对象未初始化,或者在传递中失去了,往往使webWork托管的对象出现这种问题
D.未正确的写上Getter,Setter方法
2.无任何提示的错误...
A.一般情况是HibernatePO执行的时候发生的错误,未将错误正确的抛出..
B.转入Error页面采用Redirect模式,错误信息不能显示
其他
A.WebWork Action中未找到对应的映射
B.在弹出窗口中,Session丢失
C.Tomcat,MYSQL乱码问题
&&&& 在WebWork值得注意的是URL传递的参数,需要手工用toCN转码
&&&& Form传递的不需要
D.WebWork标签的引用问题,Map request并不是和request映射的那个对象
&&&& 有一个同名对象,但是类型是httpRequest的Request才是..
E.Hibernate查询书写出错
F.Delete方法使用出错
G.验证器使用出错
H.类型格式定义不正确..如日期时间型显示为日期型
I.在WebWork的JavaScript中,好像不好直接使用'和"符号,也许要HtmlEncode后,才能用??,还是要UrlEncode?
J.全角作主键时,传递异常...
K.JS 调试的时候,层次关系中,&!--注释--&也是一个子对象..
L.验证实现不精确..
M.再次注意,空值的包装问题,再webWork中自动处理了,用其他框架时,要充分考虑
N.JDO对象需要及时更新,并且要及时调整相关的Bean
O.缺少JDO请及时加上
1.纯JSP编写时发生的错误
一般是没有正确编译,将编译中的Java文件放到IDE中编译一下,就可以看到提示.
******************************************************************************************************
&&
1、对Null字符进行String处理出错
产生原因:数据库中数据为空值,却用字符处理函数进行处理了
&&&&& 后果:崩溃性错误
预防方法:
&&&&&&&&&& A.给数据库中可能出现空值的字段,加上默认值
&&&&&&&&&& B.提交时,用JS脚本进行验证
&&&&&&&&&& C.在处理可能是空值的字符时,用CheckNullStr(vValue) 对数值进行保护处理
&&&&&&&&&& D.对处理过程加上错误陷阱,防止出现崩溃性错误
2、传递参数时,"&&& '&&& 等字符造成问题
产生原因:处理" '等字符时,和Html中使用 "&&& '&&&& 等冲突,造成数据传送失败
&&&&& 后果:崩溃性错误
预防方法:
&&&&&&&&&& A.统一" '等符号的使用模式和策略
      如 JS中,字符串用""包起来&&&&& ' 需要用 \'代替
  &&&&&   如传递查询参数时,其中可能有 ' 和 %&&& 需要特别的处理,所以用""包字符串
&&&&&&&&&& B.在不丢失数据的情况下,根据情况使用
&&&&&&&&&&&&& Server.HtmlEncode(vValue)
&&&&&&&&&&&&& Server.UrlEncode(vValue)
&&&&&&&&&& C.对处理过程加上错误陷阱,防止出现崩溃性错误
3、数据库里面未设置主健
产生原因:构建数据库时,未设置主健,
&&&&& 后果:造成查询时,RecordCount显示不正常,更新时得不到主健值,造成崩溃性错误
预防方法:
     A.建表时仔细检查主健是否建立,如没有一定要建立
&&&&&&&&&& B.对处理过程加上错误陷阱,防止出现崩溃性错误
4、数据库里面字段范围设置太小
产生原因:字段设置太小
&&&&& 后果:如发生越界情况,就造成崩溃性错误
预防方法:
&&&&&&&&&& A.仔细考虑字段大小设置,如不是很密集的应用,可考虑尽量设置大一些
&&&&&&&&&& B.对处理过程加上错误陷阱,防止出现崩溃性错误
5、处理各个模块,因为Copy 代码,所以显示的某些提示不准确
&&&& 如工作邮件,提示为工作任务等
产生原因:硬编码,Copy代码,粗心大意
&&&&& 后果:用户感觉极差
预防方法:
&&&&&&&&&& A.仔细检查,利用全文查找,Windows的功能就可以,还可以用FrontPage
&&&&&&&&&& B.尽量使用一些比较模糊的提示语,可以具有通用性
&&&&&&&&&& C.将某些特定的提示进行常量定义,统一替换
6、单位名称等不匹配
产生原因:硬编码,Copy代码,粗心大意
&&&&& 后果:用户感觉极差
预防方法:
&&&&&&&&&& A.仔细检查,利用全文查找,Windows的功能就可以,还可以用FrontPage
&&&&&&&&&& B.对使用的特定图片检查
&&&&&&&&&& C.将特定图片和文字进行登记
&&&&&&&&&& C.将某些特定的名称进行常量定义,统一替换,尽量利用Customer等通用常量,避免硬编码
haofenglemon
浏览: 179248 次
来自: 北京
长见识了, 新建文档还不行, 写入内容后就可以了
终于找到了我能理解和接受的的spring aop和动态代理的结 ...
可以看到存储文件!
全是xml文件,好多呀。
直接重命名xx.docx的文件为xx.zip,用WinRar打 ...
如果是JDK1.3呢?是否要将上面四个jar包手动加入JavaWeb(63)
& & & &饶了一大圈,项目经理觉得没有什么事情可以安排,刚好在外面接了一个外包项目,需要建立一个使用三大框架网站,还是蛮有兴趣的.还记得那时2013年,那时候大三非常彷徨,都不知道学习什么,学校的理论学完了,觉得肯定学不到什么工作,看着同学都去参加培训,觉得自己已经读书,如果还要向家里要钱的话,有点过意不去,所以就开始买了一本书,推荐一下&古乐声的Java Web 程序设计与项目实践&,特别适合入门,感谢这位前辈让我见识到了java的魅力.又回到我大学自学的javaweb,很多东西都忘记了,所以重新做的项目,将遇到的问题都记录下来,以便于自己复习:
&  一.想必登陆界面都会想实现输入完账户名和密码,敲击键盘的Enter键,提交表单,如下函数可以实现:
jQuery(document).ready(function() {
//按enter键提交表单
document.onkeydown = function (event){
if (event.keyCode==13) //回车键的键值为13
var jqForm = $( this).closest( 'form');//拿到最近的submit控件,进行提交
jqForm.submit();
&/script&& & & & 不过如果你刚好使用到了百度浏览器或者其他浏览器的记住账号和密码的时候,你发现要按两次enter键才能提交,而IE浏览器并没有这个问题,那是因为记住账号的网站,第一次按Enter键,默认是将出现的记住的下拉账号填充到输入框,也就是会拦截第一次的点击事件.
& & 二,当使用到struct2框架的EL表达式的时候,想要将拿到的对象的一个属性弹出来,但总会弹出错误:如下:Uncaught ReferenceError: qaa is not defined
& & &刚开始以为&alert(${infors[0].name});这样默认EL表达式默认的就是字符串,但发现是无法识别的,需要再加一个双引号:如下:&
& & & & & & & & & & & & & & & alert(&${infors[0].name}&);
& & 三.网站的表格使用的是开源的JQuery dataTables,真的非常强大,不过遇到一个问题,如何添加复选框,获得选中的哪几行,又该如何将这几行从struct2传递的对象数据重新拼接起来,传给action来改变数据库呢,我的思路是:
& & & &1.使用struct2的标签,将遍历的list对象的位置赋值给checkbox,以便于在后来遍历选中的状态的行,能取到行数,只要拿得到行数,就可以利用list对象,重新进行拼接,如下代码:
&s:iterator value=&infors& id=&infor& status=&stat&&
&tr class=&odd gradeX&&
&td&&input type=&checkbox& name=&everyline& class=&checkboxes& value=&&s:property value=&#stat.index&&/span& /&& /&&/td&
&%-- &td&&s:property value=&#stat.index& /&&/td& --%&&%--这可以获取表格的序号 --%&
&td&&s:property value=&#infor.number& /&&/td&
&td&&s:property value=&#infor.name& /&&/td&
&td&&s:property value=&#infor.retirementCardNo& /&&/td&
&td&&fmt:formatDate value=&${infor.inTime}&
& & & & &infors是一个list对象集合,value=&&s:property value=&#stat.index&这句就是去的对象的位置,赋值给复选框,接着点击提交按钮,遍历已经选中的复选框,如下代码:
$(&.btn.green&).click(function() {
var checkLenght = $(&input[type='checkbox']:checked&).//
alert(&长度为&+checkLenght);
/* $(&input[type=checkbox][checked]&).each(function(){ //由于复选框一般选中的是多个,所以可以循环输出
alert($(this).val()); //获取到选中的行号
$(&input:checkbox[name=everyline]:checked&).each(function(){ //由于复选框一般选中的是多个,所以可以循环输出
alert($(this).val()); //获取到选中的行号
// alert(&${infors[0].name}&);
& & & & 通过上面的方式就可以获得选中的行号,这样就可以从List进行过滤,传递数据了,有更好的办法,可以告诉我,谢谢
& & 四.如何将js网页的值传递给struct2的action,里面,其实只需要在action写一个setter/getter方法,然后在网页,获取表单,将参数加在后面就可以自动获取值,如下:
$(&.btn.green&).click(function() {
var listInforSelect=&测试是否传给action&;
 $(&#forminfor&).attr('action','auditProgress.action?listInforSelect='+listInforSelect+ '');  
$(&#forminfor&).submit();
& &java里面的action代码为:
private String listInforS
public String getListInforSelect() {
return listInforS
public void setListInforSelect(String listInforSelect) {
this.listInforSelect = listInforS
public String audit() {
System.out.println(&是否跳转到这里执行获取选中的数据& + listInforSelect);
infors = new ArrayList&RetireInfor&();
inforMgr.update(infors);
return SUCCESS;
}& & &这样就可以将js的值传给action了,中文会有乱码,后续解决吧
& & &五.struts2 使用了标签c,要求文字能居中,可以使用如下方式:
& & &&c:otherwise&&p style=&text-align:&&--&/p&&/c:otherwise&
&c:otherwise&&p style=&text-align:&&--&/p&&/c:otherwise&
& & 六.项目中,需要将div居中显示,使用以下方式,(IE没有效果),其他浏览器有用:
& & &(1)给div添加对应的class,如下:
&div class=& setdiv_center&&
&/div&& & &然后在css文件中,添加如下代码,便可居中:
.setdiv_center{
margin-left:50%;
&pre name=&code& class=&plain&&
& & &7.JQuery datatables插件中,设置某些列不能排序:
datatable是一个jquery扩展的表格插件。其提供了强大的表格功能。
官方地址:http://www.datatables.net/media/images/DataTables.jpg
在官方示例中,对于表格的是否可排序是在初始化中设置的一个值来决定的
$(&.datatable-simplified&).dataTable( {
&bSort&: false
如果要在初始化时就指定默认以哪一列来排序则
$(document).ready(function() {
$('#example').dataTable( {
&aaSorting&: [[ 4, &desc& ]]
这会在页面加载时初始化表格,并以序号为4也就是第5列进行降序排列
不过,这种设置只能是对表头的所有列一起进行设置。要么全都可排序,要么全都不可排序。
现有一需求,第一列为checkbox,要其不可排序,其余列均可排序
经过研究后,发现有一配置可解决该问题。在初始化时设置以下值
$(&.datatable&).dataTable( {
&aoColumnDefs&: [ { &bSortable&: false, &aTargets&: [ 0 ] }]
该值的含义为。初始化datatable,但对序号为0列的列不进行排序,别的列均可进行排序
后面是数组,可以是多列
&aoColumnDefs&: [ { &bSortable&: false, &aTargets&: [ 0 , 1 , 2 ] }]
left:400; }
& & &8.在jsp页面外的js里面获取EL表达式的值:餐卡欧如下博文:
&%@ page language=&java& pageEncoding=&UTF-8& contentType=&text/ charset=UTF-8& %&
&%@ taglib prefix=&s& uri=&/struts-tags& %&
&%@ taglib prefix=&c& uri=&/jsp/jstl/core& %&
&%@ taglib prefix=&fmt& uri=&/jsp/jstl/fmt& &%&
&%@ taglib prefix=&fn& uri=&/jsp/jstl/functions& %&
&c:set var=&ctxStatic& value=&${pageContext.request.contextPath}/static& /&
&c:set var=&ctx& value=&${pageContext.request.contextPath}&/&
然后在js文件里头使用使用${ctx},结果是直接输出,并没有被解析出来。
因为是js代码是单独出来的文件,然后引入到jsp页面。现在我们可以提前在jsp页面定义js的全局变量来解决。
&script type=&text/javascript&&
& & var ctx = &${ctx}&;
然后我们在引入的js代码中就可以直接使用ctx,轻松获取到所需的值。
& & 9.js中的日期比较函数:
//日期比较函数,false则开始时间大于结束时间,返回false
function compareDate(date, lastdate) {
var beginDate = date + &-01&;
var endDate = lastdate + &-01&;
var d1 = new Date(beginDate.replace(/\-/g, &\/&));
var d2 = new Date(endDate.replace(/\-/g, &\/&));
if (d1 &= d2) {
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:501779次
积分:7792
积分:7792
排名:第2681名
原创:234篇
转载:107篇
评论:181条
(2)(8)(5)(10)(3)(14)(4)(12)(20)(17)(18)(10)(6)(14)(14)(11)(7)(15)(8)(15)(9)(16)(10)(15)(17)(24)(1)(3)(41)同样的代码为何在java项目没错,web项目就报错_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:636,289贴子:
同样的代码为何在java项目没错,web项目就报错收藏
java.lang.ClassNotFoundException: org.jaxen.JaxenException这个是错误,我用的Xpath解析XML,在一般java项目,没错,web项目就报上面那个错两个项目导的jar包一样,都是dom4j-1.6.1.jar和jaxen-1.1-beat-6.jar以下是代码段
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(&E:/workspace/XpathDemo/data/books.xml&));
Element root = doc.getRootElement();
Element node = (Element) root.selectSingleNode(&//book[@id=*b001*]&);
System.out.println(node.element(&title&).getText());servlet和普同java项目都是这段代码
2017java学习来上市公司博为峰学java,入学即签就业协议,不就业不收费,查看java课程!java好学吗?java课程来博为峰学,java工程师就业年薪十几万!
我在eclipse和myeclipse都试过了,不用工具,直接写在tomcat的 项目目录下运行也试过了,我甚至都把jar包解压开来放进去试(这有点傻),都是这个错误。百度没用,全是说没导入jaxen这个jar包,可是我是已经导入的我是jre7和tomcat7,难道tomcat有影响?
忘了说了,直接把jar包放在tomcat的lib目录下也试过了,一样的错误
为什么没地方能解决问题啊群里都是水货,贴吧也没人回答,csdn发帖半天没人回复。怎么解决啊
myeclipse有个build path要导入。
类型不匹配异常,用泛型吧
不知道 你是哪一行 出现错误。。。。。。。。。。。你这应该 是运行时 调用一个类没找到。。。。。。。。但我不知道哪行出现错误。。。。。。。。。。。
登录百度帐号推荐应用

我要回帖

更多关于 javaweb登录界面代码 的文章

 

随机推荐