一、什么是JSP?
JSP是Java Server Pages的简称,是由Sun公司于1999年推出的一种动态网页技术标准。JSP在传统的HTML网页中加入了Java程序片段和JSP标记,可以根据用户的不同操作显示出不同的效果。
JSP的
工作方式为请求/响应式,客户端发送请求,服务端进行处理,并返回处理结果。
JSP程序需要运行在特定的Web服务器中,例如:Tomcat、WebLogic等,所有
JSP文件,在执行的时候都会被服务端的JSP引擎转换为Servlet
程序(Java源文件),然后调用
Java编译器将Servlet程序编译为class文件(字节码文件),并由Java虚拟机(JVM)解释执行。
二、集合
Collection是最基本的集合接口,一个Collection代表一组元素。
List 允许插入重复的元素
ArrayList 非同步,顺序存储结构,对其进行查找、修改效率较高
Vector 同步,
LinkedList 非同步,链式存储结构,对其进行增加、删除效率较高
Set 不包含重复元素
HashSet 非同步,迭代时间与Set容量成正比。
LinkedHashSet 非同步,链式存储结构,可以保证迭代的顺序,迭代时间与Set大小成正比。
Map 键值对集合 遍历Map。
TreeMap 非同步,其顺序可以根据构造方法的不同而不同。
HashMap 非同步,允许使用null值和null键。不保证映射的顺序。
Hashtable
ConcurrentModificationException异常 不允许并发修改时,但进行了并发修改。
对上述非同步问题均可采用 Collections.synchronized**()方法进行处理。
三、乱码的处理
用post提交,用request.setCharacterEncoding("编码方式")处理即可;
用get 提交,byte[] b=squadName.getBytes("iso-8859-1");squadName=new String(b,"gbk");
直接传汉字,URLEncoder.encode("呵呵","编码方式");接收时用get方式接收即可。
四、跳转的不同实现方式
HTML 用表单进行跳转;超链
JSP response.sendRedirect("URL");
request.getRequestDispatcher("URL").forward(request,response);服务器跳转
JS window.location="URL";
五、隐式对象
request,response,session,application,out,pageContext(常用)
exception page config(少见)
request对象
常用方法
getParameter(String name)
String[ ] getParameterValues (String name)
void setCharacterEncoding (String charset)
getRequestDispatcher(String path)
当isErrorPage=“true”时 可以使用exception 当isErrorPage="false" 时页面中不能使用 Exception
pageContext与session和application相似 代表当前页的 自定义标签中比较常用
pageContext.getOut 得到输出对象
getRequest getservletContext 得到一个application对象
四个作用域对象pageContext request session application 从小到大
它们都有三个相同的方法: setAttribute getAttribute removeAttribult
pageContext.findAttribute("abc")在作用域中从小到大的寻
找abc
六、常见的异常
异常是由多种情况引起的,一定要按照步骤慢慢来。为了避免少报异常,按照下面的步骤一步一步来。
1、修改java类后,重新启动下服务。
2、修改了JSP页面后,保存了在进行测试。
3、若修改了页面名称,但是访问不到,重新部署一下工程,基本上就可以解决了。
4、有些情况需要清除Tomcate生成的代码,让其重新生成;Project--Clean--……;
404页面找不到 查看URL是否正确;查看Tomcate是否启动;重新部署,重启服务。
500页面有错误 如果是JSP页面有
问题,往往会告诉你哪一行;
java.lang.NullPointerException 空异常,
java.net.BindException: Address already in use: JVM_Bind:8080 端口被占用; javaw.exe;
java.lang.NumberFormatException 转换异常;
java