java--简单分层概念(tomcat)

本文介绍了一个基于Java的Web应用分层架构案例,包括表现层、逻辑层和数据访问层的具体实现,展示了如何通过Servlet接收前端数据,并利用DAO模式进行数据持久化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里相当与前台页面–index.jsp(相当于表现层)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>
  <head>

    <title>第一个web项目的主页</title>
  </head>

  <body>
    <h2>主页主页</h2>
    <h2>湖南长沙</h2>
    <h3>发布方式一......</h3>
    <h3>分层架构演示</h3>
    <form action="layer" method="post">
        姓名:<input type="text" name="name"/><br/>    
        年龄:<input type="text" name="age"/><br/>    
        <input type="submit" value="保存"/>  
    </form>
    <br/><br/><br/><br/>
    <br/><br/><br/><br/>
  </body>
</html>

这里相当与前台代码功能–LayerServlet.java(相当于逻辑层)

package cn.hncu.servlet;


import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.hncu.dao.StudDao;
import cn.hncu.dao.StudDaoImpl;
import cn.hncu.domain.Stud;

public class LayerServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("经过后台,可以控制");
        //演示后台控制
        //收集参数
        String name=(String) req.getParameter("name");
        String strAge=(String) req.getParameter("age");
        //组织参数
        Stud st=new Stud();
        st.setName(name);//从前端页面获取的数据
        st.setId("001");
        st.setAge(Integer.parseInt(strAge));
        //调用dao层
        StudDao dao=new StudDaoImpl();
        boolean boo=dao.save(st);

        //这种格式是从后台传来的
        req.setAttribute("name", "这是保存之后的姓名"+st.getName());

        //根据结果导向--转发方式
        if(boo){
            req.getRequestDispatcher("/jsps/result.jsp").forward(req, resp);
        }else{
            req.getRequestDispatcher("/jsps/failure.jsp").forward(req, resp);

        }

    }
}

dao层–调用数据层(这里数据层省略了)
接口:

package cn.hncu.dao;

import cn.hncu.domain.Stud;

public interface StudDao {

    public abstract boolean save(Stud st);

}

实现类:

package cn.hncu.dao;

import cn.hncu.domain.Stud;

public class StudDaoImpl implements StudDao {

    @Override
    public boolean save(Stud st) {
        System.out.println(st.toString());
        if(st.getAge()<=25){
            return true;
        }
        return false;
}

domain–Stud对象(相当于值对象)

package cn.hncu.domain;

public class Stud {

    private String id,name;
    private int age;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Stud [id="+id+", name=" +name+", age=" + age"]";

}

根据返回值true所返回的页面–result.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>重定向/转发结果注册页面</title>
  </head>
  <body>
   <h2>重定/转发向结果页面</h2>

    <%
        String name=(String)request.getAttribute("name");
        out.println("Attribute:name="+name);
        String nm=(String)request.getParameter("name");
        out.println("Parameter:name="+nm);
     %>
    <br/>
    <!-- 网页内的"/"代表helloWeb外面的目录,所以网页文本路径一定要加项目根目录:"/helloWeb/" -->
    <!-- 而java代码内的"/"代表项目根目录,所以只要写文本存在目录就好了 -->
    <img alt="" src="/helloWeb/images/1.jpg">
  </body>
</html>

根据结果false所导向的结果页面–failure.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>重定向/转发结果注册页面</title>
  </head>
  <body>
   <h2>保存失败结果页面...</h2>



    <br/>
  </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值