【SpringBoot】如何创建SpringBoot项目?以及SpringBoot的项目结构;html基础;URL - 统一资源定位;表单的使用;Controller的创建

目录

一、创建SpringBoot项目

步骤:

第一步:新建一个项目

第二步:选择SpringBoot项目,按照图上的步骤选择并输入对应内容,

              之后点击next进行下一步。

              注:第二小步可改用阿里云:https://start.aliyun.com  ​编辑

 第三步:勾选Spring Web,并点击finish完成项目的创建

二、SpringBoot项目结构

三、html基础

1、构成一个页面的基本结构:

2、html常用标签介绍:

四、URL - 统一资源定位

1、请求服务端页面时,浏览器地址栏上输入URL地址的规则:

2、在页面上指定其他资源的路径时的规则:

五、表单的使用

六、Controller的创建

需要注意几个事项:

1、controller包需要放在项目的根包下​编辑

2、Controller上要定义@Controller注解,否则Spring MVC框架不识别该类

3、处理业务的方法要定义@RequestMapping注解,且参数要与页面表单中action的值一致​编辑

4、获取表单信息

使用请求对象:request.getParameter()获取,                        这里方法参数为一个字符串要与表单中输入框名字一致


一、创建SpringBoot项目

步骤:

  • 第一步:新建一个项目

第二步:选择SpringBoot项目,按照图上的步骤选择并输入对应内容,

              之后点击next进行下一步。

              注:第二小步可改用阿里云:https://start.aliyun.com  

 第三步:勾选Spring Web,并点击finish完成项目的创建

二、SpringBoot项目结构

  • 项目根包:
            SpringBoot项目要求我们将来定义的类和包必须放在这个包下
  • 项目启动类:
            SpringBoot项目自动生成,里面包含main方法,用来启动
  • 静态资源目录:
            用来保存当前web应用(我们的网站)中所有的静态资源(页面,图片和其他素材)

三、html基础

  • HTML是超文本标记语言,用来构成一个"网页"的语言。由W3C(万维网)制定。

1、构成一个页面的基本结构:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>

</body>
</html>
  • html 标签是 html 页面的根标签,里面包含两个子标签 head 和 body
    • head 标签是头信息,用来指定页面的元数据,这里定义的东西都是给浏览器看的。
                                                                              (包括后期用到的CSS,JS的加载)
    • body 标签是体信息,里面定义的内容都会呈现在浏览器中给用户看到。

2、html常用标签介绍:

  • <h1-h6> 标签:标题
                              每级标题的字体大小不同,标题独占一行(分1-6种大小,1最大)
  • <center>标签:将标签中间的内容全部基于浏览器居中显示。
                            (HTML5中已经不在建议使用了)
  • <input> 标签:输入组件,用于获取用户在浏览器上输入的信息
                             输入组件有多种样是,由属性typr决定。
                  属性 typr 常见的输入组件有:
                            type="text"             :默认值,表示一个文本输入框
                            type="password"  :密码输入框
                            type="button"        :按钮
                            type="radio"          :单选框
                            type="checkbox"  :复选框,多选框
                            type="submit"       :提交表单按钮
  • <br>      标签:换行
  • <a></a>标签:超链接
                            标签中间的文本是超链接上提示的文字,
                            ​​​​​​​属性 href 用于指定点击该超链接后跳转的路径(精确到从http:开始)
  • <table> 标签:表格
    ​​​​​​​                        <table>标签中包含<tr>   表格里嵌套行,行里嵌套列。
            ​​​​​​​        ​​​​​​​        属性 border="" 用于指定:边框
    ​​​​​​​                        
    " "里用数字可控制 边框粗细
    ​​​​​​​                        (HTML5中已经不在建议使用了,后期使用样式去控制)
    • <tr>     标签:行       <tr>标签中包含<td>    行里嵌套列。
      • <td>    标签:列
                   <td>标签中常见属性:
                    align        :对其方式。left左对齐,right右对齐,center剧中对其
                   
        colspan   :合并列,合并是从左向右合并列
                 
          rowspan  :合并列,合并是从上向下合并列

      • <td>&nbsp;</td> 
        ​​​​​​​                  &nbsp;  表示一个空格
  • <img>标签:图片
    ​​​​​​​                     属性src:用于指定图片的路径

四、URL - 统一资源定位

UPL:统一资源定位  
DNS:域名解析服务      
                              协议名称   主机地址信息    资源的抽象路径
在本电脑开启服务器,在浏览器输入http://  localhost: 8080  /index.html 
即可进入你制作的网页
                              协议名称      IP     端口   /resources/static/... 里的文件名字

1、请求服务端页面时,浏览器地址栏上输入URL地址的规则:

  • 根据 UR L的主机地址信息我们可以找到我们的服务器(Tomcat),
    抽象路径部分最开始的"/"则是让服务器去项目的static目录下找对应的资源文件

2、在页面上指定其他资源的路径时的规则:

  • 我们在 html 页面上经常会使用超链接或者图片组件,这时我们需要指定路径,这里的路径都是从"/"开始的
  • 这里的"/"就是 URL 地址中抽象路径部分最开始的"/"

五、表单的使用:

  • <form>标签:表单

                           用于将用户在页面上输入的信息提交给服务端使用的组件。
    • form表单中应当包含若干的输入组件.
    • 注意:
      ​​​​​​​        
      只有包含早form标签中间的输入组件中用户输入的信息才会提交给服务端!!

  • form上有两个重要的属性:
    •  action   用于指定表单提交的路径,(该路径需要服务端配合处理)
    • method 表单提交的形式,有两个可选项:get、post
      • get  地址栏形式提交,表单数据会拼接到地址栏的URL(抽象路径)中传递
      • post表单数据会被包含在请求的消息正文中被提交

  • PS:
    • 当表单数据含有用户隐私信息或附件上传时应当使用POST。
    • method属性不指定时,默认是GET请求提交。
    • 表单中应当包含一个提交按钮,该按钮点击后会将这个表单进行提交。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
    <body>
        <center>
              <h1>用户注册</h1>
              <!--
                        <form>标签:表单
                                   用于将用户在页面上输入的内容提交给服务器的组件。
                              注意:只有被form标签包含的输入框中用户输入的内容才会被提交。

                         form表单上有两个重要的属性:
                              action: 用于指定表单提交的 位置(该位置是服务端指定的)
                              method: 用于指定表单提交的 方式 ,有两个可选值:get、post
                                    get : 表单数据的提交会被包含在提交的请求路径中的抽象路径部分
                                    post: 表单数据的提交会被包含在请求的消息正文中后(后面讲)

                         表单提交后的路径:
                                http://localhost:8080/regUser?username=%E8%B5%B5%E8%80%81%E9%AA%9A&password=123&nickname=sao&age=99
                         在该路径中,资源的抽象路径部分为:
                                /regUser?username=%E8%B5%B5%E8%80%81%E9%AA%9A&password=123&nickname=sao&age=99
                                URL格式中,对于抽象路径可以包含两部分,请求资源的路径和附带的参数。要求他们之间用"?"隔开
                            其中:
                                /regUser   请求资源的路径(这个名字是你在form表单中属性action创建的那个名字)
                                username=%E8%B5%B5%E8%80%81%E9%AA%9A&password=123&nickname=sao&age=99  附带的参数

                                请求资源的路径在表单提交时它的内容就是表单上指定的action的值。
                                附带的参数就是表单中所有输入框中的信息,
                         具体格式:
                                输入框1的名字=输入框1中用户输入的信息&输入框2的名字=输入框2的内容&...
                                                                ^                        ^
                                                                &用于分割每一个参数
                  -->
              <form action="/regUser" method="get">
                  <table border="2">
                        <tr>
                          <td>用户名</td>
                          <td><input name="username" type="text"></td>
                        </tr>
                        <tr>
                          <td>密码</td>
                          <td><input name="password" type="password"></td>
                        </tr>
                        <tr>
                          <td>昵称</td>
                          <td><input name="nickname" type="text"></td>
                        </tr>
                        <tr>
                          <td>年龄</td>
                          <td><input name="age" type="text"></td>
                        </tr>
                        <tr>
                          <td colspan="2" align="center">
                              <!--
                                    提交按钮:type="submit"
                                       作用:当用户点击这个按钮时,会将包含该按钮的表单进行提交
                                -->
                              <input type="submit" value="注册">
                          </td>
                        </tr>
                  </table>
              </form>
        </center>
    </body>
</html>

六、Controller的创建:

  • Controller是所有处理业务请求的类的统称,
    我们可以创建一个包
    controller,(与启动类在同一包中
  • 保存实际处理业务的所有Controller类。
    • 注意三个细节:
      细节1:本java文件一定要在src/main/java/com/tedu/springboot2211/controller
             文件包下,与启动类在同一包中
      细节2:一定要有两个@注解:类上@Controller,方法上@RequestMapping("/regUser")
      细节3:@RequestMapping("/regUser")  
            ()里的参数决定能不能收到表单,所以应当与表单名字一致(建议复制)

需要注意几个事项:

1、controller包需要放在项目的根包下

2、Controller上要定义@Controller注解,否则Spring MVC框架不识别该类

3、处理业务的方法要定义@RequestMapping注解,且参数要与页面表单中action的值一致

4、获取表单信息

使用请求对象:request.getParameter()获取,
                        这里方法参数为一个字符串要与表单中输入框名字一致

package com.tedu.springboot2211.controller;

import com.tedu.springboot2211.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 用于处理本网站中和用户相关的操作
 *
 * 注意 细节:
 * 细节1:本java文件一定要在src/main/java/com/tedu/springboot2211/controller文件包下,与启动类在同一包中
 * 细节2:一定要有两个@注解(类上@Controller、方法上@RequestMapping("/regUser"))
 * 细节3:@RequestMapping("/regUser")  ()里的参数决定能不能收到表单,所以应当与表单名字一致(建议复制)
 */
@Controller
public class UserController {
    //该File对象表示保存所有用户信息的目录:users
    private static File userDir;
    static {
        userDir =new File("./users");
        if (!userDir.exists()) {//如果该目录不存在
            userDir.mkdirs();
        }
    }

    /**
     * 用于处理用户注册操作
     * @param request   请求对象
     *                  请求对象中包含了浏览器发送过来的所有信息
     * @param response  响应对象
     *                  响应对象表示的是服务端要给浏览器回复的内容
     */
    @RequestMapping("/regUser")
    //HttpServletRequest、HttpServletResponse 接收表单的方法的固定参数 请求与响应
    public void reg(HttpServletRequest request,  HttpServletResponse response){
        System.out.println("开始处理用户注册!!!");
        /*
            1:获取注册页面上表单提交的用户信息
            2:将该用户信息保存
            3:响应给用户一个注册结果页面
         */
        /* 1:获取注册页面上表单提交的用户信息
            当我们向获取表单提交上来的信息时,这里getParameter方法要传入对应输入框的名字
            输入框上name属性指定的名字:<input  name="username"  type="text">
         */
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String nickname = request.getParameter("nickname");
        String ageStr = request.getParameter("age");//临时用的变量名,不要太在意
        System.out.println(username+"," +password+ "," +nickname+ ","+ageStr);

        //必要的数据验证工作
        /*
            当我们调用请求对象的getParameter()方法获取某个客户端传递的参数,
            返回值:
                如果为null:说明客户端没有传递该参数
                举例:
                /regUser?password=xxxx&nickname=xxxx&age=xxxx (参数不包含username)
                String username = request.getParameter("username")
                如果返回值为null,说明客户端没有传递username这个参数

                如果为空字符串:说明该参数没有值
                举例:
                用户在注册页面上用户名输入框空着不填
                /regUser?username=&password=xxxx&nickname=xxxx&age=xxxx
                String username = request.getParameter("username");
                返回值就是空字符串
         */
        if ( username==null || username.isEmpty() ||
             password==null || password.isEmpty() ||
             nickname==null || nickname.isEmpty() ||
             ageStr == null || ageStr . isEmpty()){
            try {
                response.sendRedirect("/reg_info_error.html");//返回提示用户,再创建一个错误界面
                return; //既然都错了,就到此为止, 返回  重新来过
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        /* 2:将该用户信息保存
            先将该转int的转一下,之后创建集合将需要放的东西都添加进去,最后在文件包里创建该用户的文件
         */
        int age = Integer.parseInt(ageStr);//转成int类型 用包装类转成整数型  这里的age为了表达的更清楚,应当在意
        User user = new User(username,password,nickname,age);
        //重载的File构造器,参数1:所在的父目录  参数2:该File对象表示的文件或目录
        File file = new File(userDir,username+".obj");

        //如果写文件前,发现该文件已经存在了,说明之前已经有用户使用该用户名(重复用户)
        if (file.exists()) {
            try {
                response.sendRedirect("/have_user.html");
                return;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        try (
                FileOutputStream fos = new FileOutputStream(file);      //因为其使用完并关闭会自动调用.close()
                ObjectOutputStream oos = new ObjectOutputStream(fos);   //所以我们放在try中直接判断后并关闭,最合适
        ){
            //将该注册用户信息以User对象形式保存在文件中
            oos.writeObject(user);

            // 3:将注册成功页面响应
            response.sendRedirect("/reg_success.html");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
## 平台简介 可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 诺寒基于hplus和inspinia两套后台系统模板开发。 http://www.zi-han.net/theme/hplus http://webapplayers.com/inspinia_admin-v2.7.1 ## 内置功能 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现。 3. 岗位管理:配置系统用户所属担任职务。 4. 菜管理:配置系统菜,操作权限,按钮权限标识等。 5. 角色管理:角色菜权限分配、设置角色按机构进行数据范围权限划分。 6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 7. 参数管理:对系统动态配置常用参数。 8. 通知公告:系统通知公告信息发布维护。 9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 10. 登录日志:系统登录日志记录查询包含登录异常。 11. 在线用户:当前系统中活跃用户状态监控。 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 14. 系统接口:根据业务代码自动生成相关的api接口文档。 15. 在线构建器:拖动元素生成相应的HTML代码。 16. 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于SpringBoot的简易问卷调查系统源码+项目说明.zip # Questionnaire ## Introduction 一个基于SpringBoot的简易问卷调查系统 ### Features * 采用Nginx实现前后端分离(并不规范) * 用户管理 * 发布问卷 * 回答问卷 ### ToDo - 后台管理 - 验证码 - 带答案式问卷 - 统计分析 - 导出excel - 权限验证 ### 后端依赖 + SpringBoot 2.1.10 + Mybatis + hutool工具包 + Lombok插件 + PageHelper分页工具 ### 前端依赖 | 框架 | 介绍 | | ------------------------ | ------------------------------- | | BootStrap | 基础的布局框架 | | BootStrap-datetimepicker | 日期选择工具 | | BootStrap-table | 格显示工具 | | BootStrapValidator | 验证工具 | | Jquery | 基础框架,是BootStrap框架的基础 | | Jsrender | 模板引擎,动态生成页面 | | toastr | 提示工具 | ### 开发工具 + IDEA 2018.1.5 ### 如何使用 1. 部署运行环境 * 安装反向代理服务软件Nginx1.14.2,windows或linux版本均可。可参看博文[Nginx简安装与配置](https://blog.csdn.net/qq_41550842/article/details/103532550),也可自行百度 * 静态html,js,图片等在上面的resource文件夹内,将这些放入服务器中 * Java版本1.8 * mysql5.5 2. 配置文件 * Nginx配置文件,打开nginx.conf文件,进行如下配置 ```nginx server { listen 80; server_name 127.0.0.1; ####需设置服务器ip#### #charset koi8-r; #access_log logs/host.access.log main; location /nginx/ { root html; index index.html index.htm; } #动静分离 location /views/ { ###下面的根目录需要设置为静态资源的根目录,若将代码克隆下来直接放到linux服务器根目录下,则不需要改### root /resource/questionnaire_static_res;#html页面存储位置的根目录 } #该配置是指nginx收到的url中包含/views/的请求,nginx就会去/resource/questionnaire_static_res/views中查找 location /static/ { root /resource/questionnaire_static_res; #同上 } #反向代理,如果nginx匹配完上述两个规则后,未匹配到相应资源

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Speechless_小赵啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值