Servlet-Jsp代码示例

前言

虽然servlet-jsp相关已经不常用,但是循序渐进的学习,还是应该从最基础的开始。(所有代码的开发设计都是以idea为标准,eslipse会有些差别,但是大同小异。)

1、Servlet部分

1.1、创建servlet

idea中创建Java-Web工程
创建过程:File -->New–>Java–>Java EE–>勾选Web Application–>完成创建
src中创建com.xxx(公司名).xxx(项目名)包,在包下创建servlet.java

1.2、servlet 代码块

@WebServlet("/active")
public class DemoServlet extends HttpServlet {
 public void service(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException {
     req.setCharacterEncoding("utf-8");
     String use1 =req.getParameter("use1");
     String use2 =req.getParameter("use2");
     String use3 =req.getParameter("use3");
     String use4 =req.getParameter("use4");
     String use5 =req.getParameter("use5");
     String[] use6 = req.getParameterValues("use6");
     // c:接、调、存、转
     //第一种存值方式(setAttribute)
     req.setAttribute("use1",use1);
     req.setAttribute("use2",use2);
     req.setAttribute("use3",use3);
     req.setAttribute("use4",use4);
     req.setAttribute("use5",use5);
     req.setAttribute("use6",use6);
//第二种存值方式(map)

//     Map<String,Object> map = new HashMap<>();
//     map.put("use1",use1);
//     map.put("use2",use2);
//     map.put("use3",use3);
//     map.put("use4",use4);
//     map.put("use5",use5);
//     map.put("use6",use6);
//     req.setAttribute("message",map);

//转
     req.getRequestDispatcher("show.jsp").forward(req,resp);
     //resp.sendRedirect("show1.jsp");
 }
}

注释
1.创建的servlet 必须继承HttpServlet 协议,否则不可以作为servlet
2.servlet 的同步开发包括:接、调、存、转。
3.在接值之前需要声明编码格式,eg:

 req.setCharacterEncoding("utf-8");

4.servlet的存值方式,有两种;
4.1.setAttribute:eg:

	req.setAttribute("use1",use1);
     req.setAttribute("use2",use2);

4.2.map存值:eg:

  Map<String,Object> map = new HashMap<>();
     map.put("use1",use1);
    map.put("use2",use2);
    req.setAttribute("message",map);

5.跳页问题
5.1.转发:

req.getRequestDispatcher("show.jsp").forward(req,resp);

5.2.重定向:

resp.sendRedirect("show1.jsp");

区别:转发可以带参,重定向不可以带参。
转发通过forward把req,resp,全部传回原有的request,重定向是传给一个新的request。
6.注解:webservice(”/active“)。

2、配置文件(web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-class>com.ftg.learn.service.DemoServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/first</url-pattern>
    </servlet-mapping>
</web-app>

详见前面所写的servlet博客浅谈servlet

3、Jsp

3.1、index.jsp

<html>
  <head>
    <title>第一个页面</title>
  </head>
  <body>
  <form method="post" action="/active">
    <input type="text" name="use1"/>
    <input type="text" name="use2"/>
    <input type="text" name="use3"/>
    <input type="text" name="use4"/>
    <input type="text" name="use5"/>
    <input type="text" name="use6"/>
    <input type="text" name="use6"/>
    <<input type="submit"/>
  </form>
  </body>
</html>

注释
1.index.jsp 中相对简单,只有一个form表单,用来填写数据,和提交按钮。
2.form表单中的元素
2.1.method:请求方式
2.2.action:跳页
2.3.input:输入框、button:按钮;

3.2、show.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    // 1.request out
    String use1 =(String) request.getAttribute("use1");
    out.print(use1);
    String use2 =(String) request.getAttribute("use2");
    out.print(use2);
    String use3 =(String) request.getAttribute("use3");
    out.print(use3);
    String use4 =(String) request.getAttribute("use4");
    out.print(use4);
    String use5 =(String) request.getAttribute("use5");
    out.print(use5);
    String[] use6 =(String[]) request.getAttribute("use6");
    out.print(use6);
    out.print(Arrays.toString(use6));
%>
</body>
</html>

注释
1.show.jsp展示级页面。
得到值–getAttribute。
2.数组:
String[] use6 =(String[]) request.getAttribute(“use6”);
out.print(use6);
out.print(Arrays.toString(use6));
Arrays:数组帮助类
c标签循环遍历。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值