小部分Java基础+jsp+servlet

JSP应用技术与ajax 知识点总结

Java基础:

  1. try…catch
    Try{
    调用DAO层代码时,一般需要异常处理
    }catch(Exception e){
    e.printstacktrace();
    }
    在dao层,方法需要抛出异常,异常可以在service层,处理,也可以在action中直接处理
    String StringBuffer StringBuilder
    StringBuffer str=new StringBuffer(“”);
    str.tostring();
    str.append(“ ” );
    StringBuider str =new Stringbuider (“” );
    str.append(“ ”);
    str.toString();
    2.List
    List继承collection接口
    Listlist =new ArrayList();
    List.add();//添加对象
    List.size();//对象个数
    List.get(i)//取对应的i的对象
    List遍历输出结果的三种方式
    LIstuserlist=new ArrayList();
    User user1=new User();
    User user2 =new User();
    List.add(user1);
    Lsit.add(user2);
    (1)通过迭代器:
    Iterator a =list.iterator();
    While(a.hasnext()){
    User user =new User();
    user=a.next( );
    就可以使用user对象
    }

(2)加强for循环(常用)
For(User user:list){
直接可以一个一个的使用list中的user对象了
}

(3)普通循环:
For(int i=0 ;i<list.size();i++){
User user=list.get(i);
就可以使用user对象了
}

Map:

Map<String ,String> map= new HashMap<String,String>();
map.put(“想起你”,”xiangqini”);
map.put(“ ”, ‘’ ’’);//map中添加元素
map.get(“想起你”)//根据key得value
map.remove(“想起你”)//根据key删除元素

遍历:

使用Iterator遍历

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();

while (entries.hasNext()) {

Map.Entry<Integer, Integer> entry = entries.next();

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

}
I/O : PrintWriter
设置格式
Response.setContentType(“text/html;charset=utf-8”);
Response.setcharacterEncoding(“utf-8”);
PrintWriter out = response.getWriter();

Servlet重点

1、tomcat
工作目录:
(1)webspps(创建web工程)放置web工程
所谓的web工程就是容器下的一个文件夹
该文件夹要满足所使用的容器(tomcat)要求:
Web工程目录下一定要有WEB-INF文件夹
WEB-INF文件夹里必须要有web.xml配置文件
配置一个servlet如下:

ShowSession
kownSession.ShowSession


ShowSession
/ShowSession

(2)conf:信息配置文件(tomcat默认的)
Context.xml
Web.xml*
Server.xml*(配置端口号)
Tomcat-users.xml
(3)bin

Startup.bat 开启服务器
Shutdown.bat关闭服务器
(4)Lib
写工程时需要的一些jar包
目前用到的
jstl-1.2
mysql-connector-java-5.1.34
servlet-api
(5)work:生成的临时文件(如:jsp翻译出来的servlet以及字节码文件(.class))
(6)logs:
tomcat日志错误排查
(7)temp:临时文件

2、servlet的生命周期
1.第一次请求某个servlet时tomcat创建servlet对象(过滤器是开启服务器时),下一次访问就不用创建对象了。调用的是构造方法
2.初始化操作,调用init()//给定一些初始值,或者起名的操作
3.业务处理方法(service())根据请求类型不同分配不同的方法
Doget();
Dopost();
3.销毁(destroy())
1.tomcat关闭
2.Tomcat容器出现error
由创建到销毁是servlet生命周期

补充:
单例模式:某个类的对象只有一个
3、request对象和response对象
二者实现参数的传递
页面->servlet
1.通过url,get方式(可以使用a标签)
2.form表单method=”post/get”
3.HttpServletRequest接受页面传来的参数
请求转发
Request.getParameter(String name);//文本,密码,单选框

启用<input type=“radio” name="_add" value=“1” <c:if test=" u s e r . p o w e r . a d d = = 1 " > c h e c k e d = " c h e c k e d " < / c : i f > > 未 启 用 < i n p u t t y p e = " r a d i o " n a m e = " a d d " v a l u e = " 0 " < c : i f t e s t = " {user.power._add==1}">checked="checked"</c:if>> 未启用<input type="radio" name="_add" value="0" <c:if test=" user.power.add==1">checked="checked"</c:if>><inputtype="radio"name="add"value="0"<c:iftest="{user.power._add==0}">checked=“checked”</c:if>>

Integer userid = Integer.parseInt(str_userid);//字符串转整型
Request.getParameterValues(String name);//获取一个String数组,主要是对于复选框

sb.append("篮球<input type=\"checkbox\" name=\"goods\"  value=\"1\" >");
		sb.append("足球<input type=\"checkbox\" name=\"goods\"  value=\"2\" >");
		sb.append("排球<input type=\"checkbox\" name=\"goods\" value=\"3\" >");

4.HttpServletResponse向前台页面反应
Response.setContentType(“text/html;charset=utf-8”);
Response.setcharacterEncoding(“utf-8”);
PrintWriter out = response.getWriter();
Out.print();
Out.write();
重定向
4、post和get的区别:
Post->doPost()方法
Get->doGet()方法
public class revision1 extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);//将dopost所有业务委托给doget
}
}

(1)
get请求会把input中(?name=value&name=value)拼接到url后面
而post方法没有
(2)
Get请求的参数url有长度限制,最大8192个字节,post没有长度限制
(3)
Get请求不安全,post安全系数高(用户注册登录)
(4)get执行效率高于post
5、cookies sessions application
cookie :
将页面子页面的信息存储到客户端的cookie文本中。
客户端浏览器内存中。(不设置最大生命周期)
Cookie cookie = new Cookie(key,value);value只能是文本
cookie…setMaxAge(生命周期);
response.addCookie(cookie);
Cookie定义:浏览器向客户端写入的文本(txt),保存到客户端的一个文本文件中的名 值对,与特定客户相关(每个浏览器写入的文件都不相同)
名值对(key-value):例如user = 123,password = 123456,……
实现Cookie存储的两种方式:存储在浏览器内存中、存储在txt文件中
存入:
for(int i=1;i<=3;i++) {
Cookie cookie=new Cookie(“name”+i,“value”+i);
cookie.setMaxAge(5000);//为cookie设置生命周期,才会被保存到 浏览器的cookie文本文件中
response.addCookie(cookie);
}

取:
Cookie []cookies=request.getCookies();
int i=1;
for(Cookie cookie:cookies) {
sb.append("");
sb.append(""+i+"");
sb.append(""+cookie.getName()+"");
sb.append(""+cookie.getValue()+"");
sb.append("");
i++;
}
session :
将页面子页面的信息存储到服务器端的内存当中。
一个浏览器窗口(包括子窗口)一个session。
HttpSession session = request.getSession(true);
session.setAttribute(key,value);
session.getAttribute(key);
Session生命周期
可以通过程序来终止一个会话。如果客户端在一定时间内没有操作,服务器自动终止会话。
(我们第一次访问web应用的时候创建session对象,
当你关闭浏览器的时候,session清空,过期
清空历史纪录时,关闭web服务时,session清空
或者session过期时)
cookie与session的联系和区别:
1.存放位置不同
2.存取方式不同,cookie只能存放文本消息(String)
3.Cookie对客户端是可见的,session客户端不可见
4.Session关闭了浏览器会话就结束了,session就会失效,id也会消失
Cookie可以设置保存很长时间
5.session依赖于cookie(分配给session一个id存在客户端的文本,下一个请求,连同id一块发送到服务器端,创建Session的时候会把SessionId保存在Cookie中)
6.若禁用了cookie
1.在Jsp/Servlet中,如果浏览器不支持Cookie,可以通过URL重写来实现,就是将一些额外数据追加到表示会话的每个URL末尾,服务器在该标识符与其存储的有关该会话的数据之间建立关联。如hello.jsp?jsessionid=1234
2.重写url
servlet中html标签赋值时<a href=“showCookies”>需要加两个斜杠
  //encodeURL方法用在链接地址、表单提交地址。
                response.encodeURL(String url);url放相同目录下,即将要访问的下一个路径如
response.encodeURL(‘’choose”)此方法会在some后面添加sessionId
                //encodeRedirectURL方法用于重定向地址。
                response.encodeRedirectURL(String url);

application :
web工程的共享数据,存储在服务器端
ServletContext application = this.getServletContext();
application.setAttribute(key,value);
application.getAttribute(key);

  1. 用于保存整个WebApp的生命周期内所有客户端都可以访问的数据
  2. 从web应用启动到web应用关闭(通过HttpServlet.getServletContext()可以拿到)
  3. 在API中表现为ServletContext
    统计网站的访问次数:
    – 1. 存在数据库 – 2. 文件 – 3. Application
  4. 取值
    application.getAttribute(String key)
    1.存值(设置相关属性)
    application.setAttribute(String key)
    ServletContext application=this.getServletContext();//这里也可以用super,因为没有对此方法重新,this/super都是调用的httpServlet中的方法,用HttpServlet也可以
    //当第一次进入这个程序访问时,o_count一定为NULL
    Object o_count=application.getAttribute(“count”);
    Integer count;
    if(o_count==null) {//第一次访问
    count=1;
    application.setAttribute(“count”, count);
    }else {//不是第一次访问
    count=(Integer)o_count;
    count=count+1;
    application.setAttribute(“count”, count);
    }

6、请求转发与重定向

mvc设计模式
model
view
controller 三层结构:
action/controller
service
dao

jsp : jsp 跟Servlet联系,jsp程序运行原理
1、 jsp 指令

<%@include %>(静态包含) 与 jsp:include(动态包含) 区别

2、 jsp 脚本
<%= <% <%!
3、 jsp的九大内置对象(*)

4、 四大域对象
PageContext -> Request -> Session -> Application

get/setAttribute
PageContext.findAttribute

5、 el表达式
${} -> javaBean -> field name

6、 jstl
jstl的使用环境搭建

<c:if>
<c:forEach>
<c:choose>

7、 监听器 listener
监听域对象的创建与销毁
监听域对象的值变化

绑定与解绑
钝化与活化

8、 过滤器
使用过滤器完成权限系统的升级。

9、 登录、注册、列表增删改查
列表页新增功能、删除功能的实现。
10、javabean
封装

11、jdbc

  1. 基本应用
    Connection
    Statement
    PreparedStatement
    ResultSet

操作数据库的步骤

  1. 事务操作
    事务原理:原子性、一致性、隔离性、持久性
    事务的并发问题:虚读、幻读、不可重复读
    事务的隔离级别:1 2 4 8

应用:转账

猜你喜欢

转载自blog.csdn.net/weixin_44703894/article/details/108644415