ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

MyShop-不用框架实现的基础javaweb项目

2020-05-28 23:51:25  阅读:362  来源: 互联网

标签:String 框架 req private MyShop USER null servlet javaweb


了解了java基础之后来个项目练练手

既然是自己练手,就不需要什么需求分析,设计,直接从模仿开始,就拿淘宝为例子吧

找一个前端模板,一大群html,这里就不自己写了,自己写的没有模板的美观

数据库设计

来一个最基础的用户表

drop table if exists `myshop_user`;
create table `myshop_user`(
    USER_ID varchar(32) not null,
    USER_NAME varchar(20) not null,
    USER_PASSWORD varchar(20) not null,
    USER_SEX varchar(1) not null,
    USER_BIRTHDAY  datetime default null,
    USER_IDENITY_CODE varchar(60) default null,
    USER_EMAIL varchar(60) default null,
    USER_MOBLLE varchar(11) default null,
    USER_ADDRESS varchar(200) not null,
    USER_STATUS decimal(6,0) not null,
    primary key(`USER_ID`)
)ENGINE=InnoDB default charset=utf8;

如果只是普通的日期那就太简单了,想弄成当前时间

遇到的问题是mysql5.x居然不支持data datatime类型设置系统默认值即当前时间,

 USER_BIRTHDAY  datetime default null,

一开始我想设置USER_BRITHDAY的日期类型设置为当前时间为其默认值?

写的 USER_BRITHDAY datetime default now(),报错

想用当前时间,默认系统的值,只能 timestamp 类型,且 默认值设为 now() 或 current_timestamp()

如下

就可以这样

 USER_BIRTHDAY  timestamp NULL default CURRENT_TIMESTAMP

就可以系统创建用户的注册时间。

不过最后我为了偷懒没有用系统的默认时间即设置系统默认值,而是用的一个datetime

-------------------------------------------------------------------

有了数据库,就需要创建数据库对应的实体类(即entity)

package com.yang.entity;

public class myshop_user {
    private String  USER_ID;
    private String USER_NAME;
    private String USER_PASSWORD;
    private String USER_SEX;
    private String USER_BIRTHDAY;
    private String USER_IDENITY_CODE;
    private String USER_EMAIL;
    private String USER_MOBLLE;
    private String USER_ADDRESS;
    private int USER_STATUS;


}

然后就是构造函数,set get就行,利用快捷键

------------------------------------------------------------

再写一个对应的增加用户的jsp,效果如图

主要就是form tr td input这些html知识,比较简单,但是过程麻烦,

 

 

 

admin_useradd.jsp

里面的class引入的css是都用的模板里的,直接引用即可,这也是前端模板的好处,好看。直接用,当然也可以不需要这些css

其他没啥大问题,主要是如果有特殊需求,需要上传文件的话需要enctype

<form enctype="multipart/form-data">

--------------------------------------------------------------

既然上面的表单都提交了跳转请求,那就写跳转请求servlet,

记住maven是javax.servlet不是tomcat.servlet那个maven,导错就会写不出servlet

   <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
View Code

并且!需要注解的话得版本高一点如@WebServlet低版本不行

因为表单是post提交过来,那也只需要重写doPost即可

这里面.避免乱码就是设置字符集(就像重新打碎重组)

先把请求过来的设置:request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。

再设置响应的字符集:Content-Type用于定义网络文件的类型和网页的编码,决定浏览zhidao器将以什么形式、什么编码读取这个文件

package com.yang.servlet.user;



import com.yang.entity.myshop_user;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

//@WebServlet("/manage/admin_douseradd")
public class DoUserAdd extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置请求字符集
        req.setCharacterEncoding("UTF-8");
        //设置响应字符集
        resp.setContentType("text/html");
        String username = req.getParameter("username");
        String name = req.getParameter("name");
        String password = req.getParameter("password");
        String sex = req.getParameter("sex");
        String birthday = req.getParameter("birthday");
        String email = req.getParameter("email");
        String mobile = req.getParameter("mobile");
        String adress = req.getParameter("adress");
        //创建一个实体
        myshop_user u = new myshop_user(username,name,password,sex,birthday,null,email,mobile,adress,1);
        //放进数据库

        System.out.println(u);
        //成功或失败重定向到哪去
        if(true)
        {
            resp.sendRedirect("admin_user.jsp");
        }
        else {
            //输出流,通过这个方法获取到打印流
            PrintWriter out = resp.getWriter();
            //js输出
            out.write("<script>");
            out.write("alert('用户添加失败')");
            out.write("location.href='manage/admin_useradd.jsp'");
            out.write("</script>");

        }

    }
}
View Code

----------------------(第一天)分界线----------------------------------

 

标签:String,框架,req,private,MyShop,USER,null,servlet,javaweb
来源: https://www.cnblogs.com/yangj-Blog/p/12984845.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有