java web初体验

github: https://github.com/Andy888888/javaWeb-Exercise

创建工程

1.创建一个Empty Project
2.添加一个Module,选择Web Application类型,勾选上Create web.xml
3.在src中添加一个AServlet类,继承HttpServlet
重写doGet方法,千万不能留着super.doGet(req, resp);否则会有405错误

下图是super源码

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_get_not_supported");
        if (protocol.endsWith("1.1")) {
            resp.sendError(405, msg);
        } else {
            resp.sendError(400, msg);
        }

    }



配置servlet映射

:配置servlet类和servlet名称的映射

:servlet名称
:servlet类的具体class指向,需要全包名路径

:配置servlet和html中的请求地址

:servlet名称
:html中的请求地址

web.xml示例




    
        loginServlet
        severlet.LoginServlet
    
    
        loginServlet
        /loginServlet
    


<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    测试
  
  
      

web.xml总结

也就是说,一个servlet需要配置两个根节点,类似两张表,两个节点下的servlet-name子节点是关联字段,两个节点,描述了servlet的名称、class类、请求时的url地址。




前后端数据传递

后台获取jsp提交的数据

String name = request.getParameter("name");

后台将数据传递给jsp

request.setAttribute("student", studentDo);
request.getRequestDispatcher("detail.jsp").forward(request, response);

jsp获取后台数据

// student为后台传递值的key
1.${student} 
2.${student.name}
3.${student["gender"]}
4.${requestScope.get("student")}
5.<%=request.getAttribute("student") %>



EL表达式(Expression Language)

语法结构: ${expression}

价值:取代<% java code %> 这种复杂的方式,使得获取值等方式更加简化

pageScope

将页面范围的变量名称映射到其值。例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope .objectName. attributeName}访问对象的属性。

requestScope

将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope. objectName}访问一个 JSP 请求范围的对象,还可以使用 ${requestScope. objectName. attributeName} 访问对象的属性。

sessionScope

将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如:${sessionScope. name}

applicationScope

将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。


注意事项

1、当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:${ user. stu-name}应当改为${user["stu-name"]}

2、< %=request. getParameter(“username”)% > 等价于 ${ param. username }

3、例如,但是下面的那句EL语言可以完成如果得到一个username为空,则不显示null,而是不显示值.

4、以下执行顺序为4 1 2 3。
${requestScope.userlist} 1
${sessionScope.userlist} 2
${applicationScope.userlist} 3
${pageScope.userlist} 4
${userlist}



你可能感兴趣的:(java web初体验)