当前位置: 首页 > news >正文

企业网站建设的基本原则有哪些?十大免费软文推广平台

企业网站建设的基本原则有哪些?,十大免费软文推广平台,网站建设的具体流程,梅州建站网络有限公司文章目录 一、Java web技术栈二、Http1.1 Http请求数据格式1.2 Http响应数据格式1.3 状态码 二、Tomcat2.1 介绍2.2 web项目结构2.3 IDEA中使用Tomcat 三、Servlet3.1 Servlet使用3.2 Servlet生命周期3.3 Servlet方法和体系结构3.4 urlPattern配置 四、Request4.1 获取请求数据…

文章目录

  • 一、Java web技术栈
  • 二、Http
    • 1.1 Http请求数据格式
    • 1.2 Http响应数据格式
    • 1.3 状态码
  • 二、Tomcat
    • 2.1 介绍
    • 2.2 web项目结构
    • 2.3 IDEA中使用Tomcat
  • 三、Servlet
    • 3.1 Servlet使用
    • 3.2 Servlet生命周期
    • 3.3 Servlet方法和体系结构
    • 3.4 urlPattern配置
  • 四、Request
    • 4.1 获取请求数据
    • 4.2 通用方式获取请求参数
    • 4.3 请求参数中文乱码问题
    • 4.4 请求转发
  • 五、Response
    • 5.1 设置响应数据
    • 5.2 重定向【注意:与请求转发区别】
    • 5.3 响应 字符 / 字节 数据
  • 五、项目小实战【用户登录注册】


一、Java web技术栈

在这里插入图片描述

在这里插入图片描述

二、Http

1.1 Http请求数据格式

在这里插入图片描述

1.2 Http响应数据格式

在这里插入图片描述

1.3 状态码

在这里插入图片描述

在这里插入图片描述

二、Tomcat

2.1 介绍

官网:https://tomcat.apache.org/
在这里插入图片描述
在这里插入图片描述

2.2 web项目结构

在这里插入图片描述

2.3 IDEA中使用Tomcat

方式一:
在这里插入图片描述

方式二:
在这里插入图片描述

三、Servlet

在这里插入图片描述

3.1 Servlet使用

在这里插入图片描述

3.2 Servlet生命周期

在这里插入图片描述

3.3 Servlet方法和体系结构

在这里插入图片描述

在这里插入图片描述

3.4 urlPattern配置

在这里插入图片描述

在这里插入图片描述

四、Request

request接受来自浏览器的请求数据

4.1 获取请求数据

在这里插入图片描述

package com.bhy.web.request;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.BufferedReader;
import java.io.IOException;/*** request 获取请求数据*/
@WebServlet("/req1")
public class RequestDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// String getMethod():获取请求方式: GETString method = req.getMethod();System.out.println(method);//GET// String getContextPath():获取虚拟目录(项目访问路径):/request-demoString contextPath = req.getContextPath();System.out.println(contextPath);// StringBuffer getRequestURL(): 获取URL(统一资源定位符):http://localhost:8080/request-demo/req1StringBuffer url = req.getRequestURL();System.out.println(url.toString());// String getRequestURI():获取URI(统一资源标识符): /request-demo/req1String uri = req.getRequestURI();System.out.println(uri);// String getQueryString():获取请求参数(GET方式): username=zhangsanString queryString = req.getQueryString();System.out.println(queryString);//------------// 获取请求头:user-agent: 浏览器的版本信息String agent = req.getHeader("user-agent");System.out.println(agent);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取post 请求体:请求参数//1. 获取字符输入流BufferedReader br = req.getReader();//2. 读取数据String line = br.readLine();System.out.println(line);}
}

4.2 通用方式获取请求参数

在这里插入图片描述

package com.bhy.web.request;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.Map;/*** request 通用方式获取请求参数*/
@WebServlet("/req2")
public class RequestDemo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1. 获取所有参数的Map集合Map<String, String[]> map = req.getParameterMap();for (String key : map.keySet()) {// username:zhangsan lisiSystem.out.print(key+":");//获取值String[] values = map.get(key);for (String value : values) {System.out.print(value + " ");}System.out.println();}System.out.println("------------");//2. 根据key获取参数值,数组String[] hobbies = req.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}//3. 根据key 获取单个参数值String username = req.getParameter("username");String password = req.getParameter("password");System.out.println(username);System.out.println(password);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//POST请求逻辑this.doGet(req,resp);}
}

4.3 请求参数中文乱码问题

package com.bhy.web.request;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;/*** 中文乱码问题解决方案*/
@WebServlet("/req4")
public class RequestDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 解决乱码:// 1.POST方式,getReader()// 解决方法:request.setCharacterEncoding("UTF-8");//设置字符输入流的编码//3. GET方式,获取参数的方式:getQueryString// 乱码原因:tomcat进行URL解码,默认的字符集ISO-8859-1//获取usernameString username = request.getParameter("username");System.out.println("解决乱码前:"+username);/*//3.1 先对乱码数据进行编码:转为字节数组byte[] bytes = username.getBytes(StandardCharsets.ISO_8859_1);//3.2 字节数组解码username = new String(bytes, StandardCharsets.UTF_8);*/username  = new String(username.getBytes(StandardCharsets.ISO_8859_1),StandardCharsets.UTF_8);System.out.println("解决乱码后:"+username);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

4.4 请求转发

在这里插入图片描述

@WebServlet("/req5")
public class RequestDemo5 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5...");System.out.println(request);//存储数据request.setAttribute("msg","hello");//请求转发request.getRequestDispatcher("/req6").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/req6")
public class RequestDemo6 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo6...");System.out.println(request);//获取数据Object msg = request.getAttribute("msg");System.out.println(msg);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

五、Response

Response设置响应数据

5.1 设置响应数据

在这里插入图片描述

5.2 重定向【注意:与请求转发区别】

在这里插入图片描述

@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp1....");//重定向/*//1.设置响应状态码 302response.setStatus(302);//2. 设置响应头 Locationresponse.setHeader("Location","/resp2");*///简化方式完成重定向//动态获取虚拟目录String contextPath = request.getContextPath();response.sendRedirect(contextPath+"/resp2");//response.sendRedirect("https://www.itcast.cn");}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

注意:虚拟目录问题,一般来说服务器使用(不需要加上虚拟目录),浏览器使用(需要加上虚拟目录)
在这里插入图片描述

5.3 响应 字符 / 字节 数据

在这里插入图片描述

@WebServlet("/resp3")
public class ResponseDemo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 设置浏览器要解析html代码和字符集(解决乱码)response.setContentType("text/html;charset=utf-8");//1. 获取字符输出流PrintWriter writer = response.getWriter();//设置content-type目的,告诉浏览器解析HTML代码,例如下面的<h1></h1>//response.setHeader("content-type","text/html");writer.write("你好");writer.write("<h1>aaa</h1>");//细节:流不需要关闭}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

在这里插入图片描述

@WebServlet("/resp4")
public class ResponseDemo4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 读取文件FileInputStream fis = new FileInputStream("d://a.jpg");//2. 获取response字节输出流ServletOutputStream os = response.getOutputStream();//3. 完成流的copy/* byte[] buff = new byte[1024];int len = 0;while ((len = fis.read(buff))!= -1){os.write(buff,0,len);}*/IOUtils.copy(fis,os);fis.close();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

五、项目小实战【用户登录注册】

loglin.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>login</title><link href="css/login.css" rel="stylesheet">
</head><body>
<div id="loginDiv"><form action="/request-response/loginServlet" method="post" id="form"><h1 id="loginMsg">LOGIN IN</h1><p>Username:<input id="username" name="username" type="text"></p><p>Password:<input id="password" name="password" type="password"></p><div id="subDiv"><input type="submit" class="button" value="login up"><input type="reset" class="button" value="reset">&nbsp;&nbsp;&nbsp;<a href="register.html">没有账号?点击注册</a></div></form>
</div></body>
</html>

register.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>欢迎注册</title><link href="css/register.css" rel="stylesheet">
</head>
<body><div class="form-div"><div class="reg-content"><h1>欢迎注册</h1><span>已有帐号?</span> <a href="login.html">登录</a></div><form id="reg-form" action="/request-response/registerServlet" method="post"><table><tr><td>用户名</td><td class="inputs"><input name="username" type="text" id="username"><br><span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span></td></tr><tr><td>密码</td><td class="inputs"><input name="password" type="password" id="password"><br><span id="password_err" class="err_msg" style="display: none">密码格式有误</span></td></tr></table><div class="buttons"><input value="注 册" type="submit" id="reg_btn"></div><br class="clear"></form></div>
</body>
</html>

LoginServlet.java and RegisterServlet.java

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 接收用户名和密码String username = request.getParameter("username");String password = request.getParameter("password");//2. 调用MyBatis完成查询//2.1 获取SqlSessionFactory对象/* String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();//2.2 获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();//2.3 获取MapperUserMapper1 userMapper = sqlSession.getMapper(UserMapper1.class);//2.4 调用方法User user = userMapper.select(username, password);//2.5 释放资源sqlSession.close();//获取字符输出流,并设置content typeresponse.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();//3. 判断user释放为nullif(user != null){// 登陆成功writer.write("登陆成功");}else {// 登陆失败writer.write("登陆失败");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 接收用户数据String username = request.getParameter("username");String password = request.getParameter("password");//封装用户对象User user = new User();user.setUsername(username);user.setPassword(password);//2. 调用mapper 根据用户名查询用户对象//2.1 获取SqlSessionFactory对象/* String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();//2.2 获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();//2.3 获取MapperUserMapper1 userMapper = sqlSession.getMapper(UserMapper1.class);//2.4 调用方法User u = userMapper.selectByUsername(username);//3. 判断用户对象释放为nullif( u == null){// 用户名不存在,添加用户userMapper.add(user);// 提交事务sqlSession.commit();// 释放资源sqlSession.close();}else {// 用户名存在,给出提示信息response.setContentType("text/html;charset=utf-8");response.getWriter().write("用户名已存在");}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
http://www.tj-hxxt.cn/news/113635.html

相关文章:

  • 购买型网站建设免费域名解析平台
  • 广州建设品牌网站怎样宣传自己的品牌
  • 哪个网站可以做试卷中视频自媒体账号注册下载
  • 哪个网站做推广效果好东营优化公司
  • 重庆市项目经理在建查询seo是网络优化吗
  • 做网站备案时间seo关键词大搜
  • 小米发布会ppt关键词优化排名费用
  • 老师让做网站怎么做网络营销的重要性与意义
  • seo网站优化快速排名软件免费创建网站
  • 一诺千金 网站建设营销型网站的分类不包含
  • 内蒙古网站建设电话手机怎么搭建属于自己的网站
  • 成都电子商务网站湖南网站设计外包哪家好
  • 教做潮男的网站百度广告代理商加盟
  • 广州学建网站高级搜索
  • 做问卷调查用哪个网站好搜索引擎网络排名
  • 合肥网站关键词推广高明公司搜索seo
  • 徐州网站运营网站源码平台
  • 上海网站建设 润百度账号
  • 如何做网站推广广告搜索大全搜索引擎
  • 长春做公司网站的网站代运营推广
  • 给个靠谱的网址广州百度首页优化
  • 广昌网站建设百度关键词搜索量排名
  • 学做披萨的网站企业培训机构哪家最好
  • 网站的中英文切换怎么做的域名解析ip地址
  • 阿里云网站建设教程网络推广公司名字
  • 网站专业建设2022年今天新闻联播
  • 商业设计网站有哪些西安做推广优化的公司
  • 直播网站开发多少钱凤凰网全国疫情实时动态
  • 南京seo网站建设费用搜索量最大的关键词
  • 郑州专业的网站建设百度搜索的优势