刚开始加入工作,接触JavaWeb,实现了简单的功能,谈谈自己的感受
我只负责去实现一个页面和其简单的功能.
刚开始得到的是一个html页面,需要把html页面转变为jsp,那么,html和jsp的差别有什么呢?
html不支持java代码段,不能像jsp中导入<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
常用的:<%%>可以写java片段,但是不能在里面写方法<%=%><%@%>指令,可以在属性import里面导包,pageEncoding设置字符编码格式,language设定脚本支持的语言,可以不写language="java",因为jsp本身就是支持java的,include file=" "
不常用的:<%!%>写java方法的
<%-- --%>jsp注释,需要解释一下,这个被叫做动态注释,重要的是要知道他和<!- ->静态注释的区别,在启动服务器之后,浏览器的控制台上只能看到静态注释,无法看到动态注释
这样加了<%@%>和<%%>之后改掉文件尾缀名.jsp之后就是一个jsp文件了
首先需要加一个<meta charset="utf-8">,这样可以使你在使用Chrome浏览器的时候,中文不会显示乱码
而且css需要在head里面导入,这样可以用来在页面加载前渲染页面
就我最近实现的注册页面的功能来说就是对数据库表进行简单的插入功能.
在跳了坑后发现,应该先去走通添加数据库之后再进行js脚本的控制(***)
为什么呢?
因为是初学者,所以搞不清很多问题,就我来说,在js写完之后测试js,然后再写action再去测试,这个时候出问题了,就很难去找到这个问题到底出现在哪里.
所以我写了很多个System.out和alert()甚至console.log()去找问题.耗费了大量的时间.
这样远不如先去走通action,在添加成功之后加入脚本,这样出现了添加失败的问题,那一定是js或者jsp的,这样相比下来就会很省事,省力.
所以我将需求的完成分为几个部分.
jsp js 数据库 行为
一个符合我的思考和节省时间的完成步骤应是:
数据库-->jsp(form)-->行为-->js(限制条件)-->jsp(java或js判断,文件开始端的)
所以我按照这个步骤来走一次:
数据库:
xml:按照需求将所有需要添加的字段都写到sql语句中,只要正确书写就行了
dao:根据xml中sql语句的id去写一个添加的方法,返回值类型应为int,boolean不常用
数据库部分完成!
jsp:
把sql语句中所有需要添加的字段都在表单内部标签的name属性中正确填写,id先不用管
然后写表单的id,action,method,如果上传的表单里有图片要加上enctype="multipart/form-data"
jsp(form)部分完成!
行为:
在相应包的action包中创建xxx-struts.xml
复制struts的配置说明,大概4行
然后struts-package-action-result
其中package 的name属性可以随意写,不能重复 命名空间为/ extends为继承的包的配置
然后action中的name与form的id一致,class 为行为类,用于把获取到的数据在这个java类里与数据库进行交互,并可以返回一个标记,method不填默认匹配该类中execute()方法
,所以创建这个类,用get,set方法可以获取form中的所有name,并相匹配,
然后写这个execute()方法,这个方法返回一个字符串类型的标记,这个标记与result的name属性匹配,用于控制跳转.
最简单的,引用dao,bean,bean.set各种值,然后将bean填入dao中方法,就OK.
行为部分完成!
js:
这部分相对来说复杂一点......
作用:对页面信息进行筛选
对用户起到提示作用
js中会运用到以下几个知识:
js(废话.),jq,ajax(与行为交互),json,正则
js:var定义变量\方法
通过js原型链等定义变量 var yyy=new Object();
yyy.zzz=function(){//代码
}
一般要定义几个方法:
submitCheck();//检查值,用于在提交时对每个值进行检查的 if语句,的罗列
dynamicDisplay();//用于页面的提示 即,事件的罗列
一些初始化方法();
jq:
$(function(){//事件})
事件:on click change blur keydown keyup on input propertychange bind delegate addClass submit
选择器:# [attr=''] .class div span
筛选:next() nextAll() prev() prevAll() hasClass() parent() is()
效果:hide show focus
html:empty()
属性:attr(json//key,value) removeAttr() prop("disabled","true")//禁用 val() text()
ajax:
用于loadpage和判断值:到一个jsp处理值,通过out.print(值)值来判断
也可以传值到action,进行数据库交互
json:
{}是对象,多个键值对形式存在,不同属性用逗号隔开
[]表示数组
obj['key']来取值
jsp(最后):
判断跳转,可以通过数据库查出来状态不同来跳转
判断权限,如果用户手动输入到一页,比如说判断是否登录,是否有看这一页的权限
css(最后的最后):
调整样式