java学习笔记(2)

  这几天过年呆家各种串门, 被搞得半死, 不过平常有空还是看看java, 现在把这几天学习的东西总结一下, 主要是javaWEB的代码:

  javaWEB的servlet是容器, webRoot(webContent)这个目录是服务器对外的根目录,这个目录下的所有文件都可以通过web直接访问,这个目录也就是我们常说的VIEW(视图层)

  

 

  如果我们新建了servlet, 如何新建一个servlet可以参考这里, eclipse会自动新建一个指向该servlet的映射, servlet默认会引入几个java文件

1
2
3
4
5
6
7
8
9
10
11
//这个很重要
import java.io.PrintWriter;
//IO异常和servlet异常
import java.io.IOException;
import javax.servlet.ServletException;
//annotation是声明的意思;
import javax.servlet.annotation.WebServlet;
//
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 
  @WebServlet(description = "test0", urlPatterns = { "/test0" }) ;这句话的意思是所有访问 /test0 的patterns, 都会调用这个servlet;

  @WebServlet(name = "controllerServlet", urlPatterns = {"/product_input", "/product_save"}); 这句话的意思是所有访问 /product_input, /product_save 的patterns, 都会调用这个servlet, 在这个servlet里面直接判断url然后对每一种地址做对应的返回, 这个就是controller(控制器) ;

 

  MVC现在还差Model了, Model就是数据层面的增删改查, 根据用户的操作(GET,POST或者其他请求方式)我们返回对应的Model给用户,

  

  新建出来的servlet.java文件默认有 doGetdoPost, 还有init 以及destory等默认的实例公用非法,init方法里面可以放初始化的代码, 没有为空就可以了 ,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void init() throws ServletException {
    london = new ArrayList<String>(10);
    paris = new ArrayList<String>(10);
    london.add("buckingham palace");
    london.add("london Eye");
    london.add("British Museum");
    london.add("national Gallery");
     
    paris.add("Eiffel Tower");
    paris.add("notre Dame");
    paris.add("the louvre");
    paris.add("champs elysees");
}

  

  doGet或者doPost的两个参数分别为HttpServletRequest request, HttpServletResponse response;

  HttpServletRequest 有这些方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1:getAuthType
2:getCookies
3:getDateHeader
4:getHeader
5:getHeaderNames
6:getIntHeader
7:getMethod
8:getPathInfo
9:getPathTranslated
10:getQueryString
11:getRemoteUser
12:getRequestedSessionId
13:getRequestURL
14:getServletPath
15:getSession
16:isRequestedSessionIdValid

  HttpServletResponse的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
flushBuffer
getBufferSize
getCharacterEncoding
getContentType
getLocale
getOutputStream
getWriter
isCommitted
reset
resetBuffer
setBufferSize
setCharacterEncoding
setContentLength
setContentType
setLocale
addHeader
sendError
sendError
setHeader
setStatus
addCookie

  

  一个doGet返回的简单例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("text/html");
    PrintWriter writer = response.getWriter();
    writer.write( "<form method='post'>" +
            "<table>"+
                "<tr>" +
                    "<td>" +
                        "<select name='titleFontSize'>" +
                            "<option>large</option>" +
                            "<option>xlarge</option>" +
                            "<option>xxlarge</option>" +
                        "</select>" +
                    "</td>" +
                    "<td><input type='submit' value='set' /></td>" +
                "</tr>" +
            "</table>" +
            "</form>" );
    writer.flush();
    writer.close();
     
}

  

  提供一个例子大概了解了javaBean是什么东东, 有两个模型(UserBean.java 和 UserCheckBean.java), login.jsp. loginchk.jsp两个jsp文件:

  UserBean.java

运行下面代码

复制代码
package user.model;

public class UserBean {
    private String name;
    private String password;
    
    public String getName () {
        return this.name;
    }
    public void setName( String name ) {
        this.name = name;
    }
    public String getPassword() {
        return this.password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}
复制代码

   UserCheckBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package user.model;
 
public class UserCheckBean {
    protected UserBean user;
    public UserCheckBean () {
         
    }
    public UserCheckBean( UserBean user ) {
        this.user = user;
    }
    public UserBean getUser () {
        return user;
    }
    public void setUser( UserBean user ){
        this.user = user;
    }
    public boolean validate() {
        String name = user.getName();
        String password = user.getPassword();
        if( "x".equals(name) && "x".equals(password) ) {
            return true;
        }else{
            return false;
        }
    }
}

  login.jsp

运行下面代码

复制代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form method="POST" action="longinchk.jsp">
        name : <input type="text" name="name" />
        password : <input type="text" name="password" />
        <input type="submit" value="submit" />
    </form>
</body>
</html>
复制代码

  loginchk.jsp

运行下面代码

复制代码
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!-- 
        因为eclipse会自动检测错误, 引用路径错误了会自动提示错误等, 没有写js那样,要各种调试, 都不知道哪里错误了;
     -->
<%@ page import="user.model.UserCheckBean" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <%
        request.setCharacterEncoding("GB2312");
    %>
    <jsp:useBean id="user" scope="session" class="user.model.UserBean" />
    <jsp:setProperty name="user" property="*" />
    
    <%
        UserCheckBean uc = new UserCheckBean( user );
    if( uc.validate() ) {
    out.println("登陆成功");
} else { out.println("wrong user or wrong password!"); } %> </body> </html>
复制代码

 

  还有一个javaBean的例子,包括一个javabean文件,一个reg.html和reg.jsp,显示用户信息的userInfo.jsp:

  bean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package beans;
import java.io.Serializable;
 
public class bean implements Serializable{
    private String name;
    private int sex;
    private String education;
    private String email;
     
    public String getName () {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
     
    public int getSex() {
        return this.sex;
    }
    public void setSex( int sex ) {
        this.sex = sex;
    }
     
    public String getEducation() {
        return this.education;
    }
    public void setEducation( String education ) {
        this.education = education;
    }
     
    public String getEmail () {
        return this.email;
    }
    public void setEmail (String email) {
        this.email = email;
    }
}

  reg.html;

运行下面代码

复制代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="reg.jsp" method="post" >
        <div>
            name : <input name="name" />
        <div>
            sex :   <input type="radio" name="sex" value="1"/><input type="radio" name="sex" value="0"/><div>
            eduction : 
            <select type="" name="education">
                <option value="高中">高中</option>
                <option value="大学">大学</option>
                <option value="硕士">硕士</option>
                <option value="博士">博士</option>
            </select>        
        <div>
            email : <input name="email" />
        </div>
        <div>
            <input type="submit" value="submit"/>
        </div>
    </form>
</body>
</html>
复制代码

  reg.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
    request.setCharacterEncoding("GB2312");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <jsp:useBean id="user" scope="session" class="beans.bean" />
    <jsp:setProperty name="user" property="*" />
    注册成功
</body>
</html>

  userInfo.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <jsp:useBean id="user" scope="session" type="beans.bean"></jsp:useBean>
    你的姓名<jsp:getProperty name="user" property="name" /> </br>
    你的性别<%
        int sex = user.getSex();
        if( 1 == sex ) {
            out.println("男");
        }else{
            out.println("女");
        };
    %></br>
    你的学历<jsp:getProperty name="user" property="education" /></br>
    <%
        out.println( user.getEducation() );
    %>
    你的email<jsp:getProperty name="user" property="email" />
</body>
</html>

本文作者:方方和圆圆

本文链接:https://www.cnblogs.com/diligenceday/p/4297679.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   方方和圆圆  阅读(256)  评论(0编辑  收藏  举报

再过一百年, 我会在哪里?

💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
点击右上角即可分享
微信分享提示