Java架构师之旅(一)

夜光序言:

 

如果世界和你,都掉进了河里,我一定先救你,然后忘记世界的呼吸~

正文:

MVC框架的演变

我们安装这个插件解决没有tomcat的问题,因为target runtime中没有嗯

 

新建webservice项目时,在target runtime中找不到apache(已经安装过了),只有basic

解决方法:

 

Help -> Install New Software

输入或选择地址 "Helios - http://download.eclipse.org/releases/helios"

展开 "Web, XML, and Java EE Development"

选择 JST Server Adapters  安装即可

因为eclipse已经安装了插件,所以可以的~~

我想先调整一下字体大小,为了书写更加舒服~~

我们如何写代码:是如何继承账号和密码的呢?

两种处理方式给写出来~~

夜光:Doget,dopost,怎么调用,既然是运行在服务端

微微一笑:web容器创建的~

 

 

package com.Genius.demo.controller;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * 夜光:登录的Servlet

 * @author:夜光

 */

public class LoginServlet extends HttpServlet {

 

 

private static final long serialVersionUID = 1L;

 

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

System.out.print("请求方式:"+req.getMethod());

}

    

 

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 我们在这里调用一下doget即可~~

doGet(req,resp);

}

    

    

}

 

 

我们如何调用,需要在xml文件里面写点东西

夜光:我们开发人员发现通过编写if逻辑,将请求方式又显示出来了~~

@Override

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("=========");

 

 

String method = request.getMethod();

 

if("GET".equals(method)){

doGet(request,response);

}else if("POST".equals(method)){

doPost(request,response);

}

}

 

我们知道这是一个容器,最后肯定是要销毁的~~

package com.Genius.demo.controller;

 

import java.io.IOException;

 

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * 夜光:登录的Servlet

 * <pre>

 * 作用就是分发对象请求方式的处理方法~

 * </pre>

 * @author:夜光

 */

public class LoginServlet extends HttpServlet {

 

 

private static final long serialVersionUID = 1L;

 

public LoginServlet(){

System.out.println("...yeguang:loginservlet instance...");

}

 

//    有的朋友会问这些方法怎么调用出来的,我们可以右键source选择需要的嗯

@Override

public void init(ServletConfig config) throws ServletException {

System.out.println(".....yeguang:loginservlet init......");

super.init(config);

}

 

 

/*重写父类中的service方法~*/

 

@Override

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("=====yeguang:loginservlet service====");

 

 

String method = request.getMethod();

 

if("GET".equals(method)){

doGet(request,response);

}else if("POST".equals(method)){

doPost(request,response);

}

}

 

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.print("请求方式:"+request.getMethod());

}

    

 

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 我们在这里调用一下doget即可~~

doGet(request,response);

}

    

 

//    既然是容器,最后肯定是要销毁的~~

@Override

public void destroy() {

System.out.println("------yeguang:loginservlet destory--------");

super.destroy();

}

 

}

Servlet里面最好不要定义全局变量,否则会出现限制安全的问题~~

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

  <display-name>YGproj</display-name>

  

  <servlet>

      <servlet-name>login</servlet-name>

      <servlet-class>com.Genius.demo.controller.LoginServlet</servlet-class>

  </servlet>

  

  <!-- 接下来我们配置一下映射 -->

  <servlet-mapping>

        <servlet-name>login</servlet-name>

        <url-pattern>/login</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 

【上面就定义了xml嗯~~】

我们在代码里面再写一下extend继承嗯~~

package com.Genius.user.controller.user1;

 

import javax.servlet.http.HttpServlet;

 

/**

 * 这个类就是用户操作的方法综合~

 * author:Genius

 */

public class UserController extends HttpServlet{

 

private static final long serialVersionUID = 1L;

    

public String list(){

System.out.println("-----list-----");

return "/index.jsp";

}

 

 

public String add(Object object){

System.out.println("-----add-------");

return "redirect:/list";

 

}

public String delete(Object object){

System.out.println("-----delete-------");

return "redirect:/list";

 

}

public String initUpdate(){

System.out.println("-----init update-------");

return "WEB-INF/views/user/update.jsp";

 

}

public String update(Object object){

System.out.println("-----update-------");

return "redirect:/list";

 

}

}

夜光:

上面这个就是一个雏形~~

我们可以调用哪个地方~

必须要带参数

而且我们可以重写父类里面的方法~

package com.Genius.user.controller.user1;

 

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

 

/**

 * 这个类就是用户操作的方法综合~

 * author:Genius

 */

@WebServlet(name="UserController",urlPatterns="/user")

public class UserController extends BaseServlet{

 

private static final long serialVersionUID = 1L;

    

public String list(){

System.out.println("-----list-----");

return "/index.jsp";

}

 

 

public String add(Object object){

System.out.println("-----add-------");

return "redirect:/list";

 

}

public String delete(Object object){

System.out.println("-----delete-------");

return "redirect:/list";

 

}

public String initUpdate(){

System.out.println("-----init update-------");

return "WEB-INF/views/user/update.jsp";

 

}

public String update(Object object){

System.out.println("-----update-------");

return "redirect:/list";

 

}

}

 

 

通过上面的代码,我们可以发现方法的调用嗯~~

 

package com.Genius.user.controller.user1;

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * 这个类就是用来控制servlet类中所有方法和逻辑

 * author:Genius

 */

public abstract class BaseServlet extends HttpServlet {

 

 

private static final long serialVersionUID = 1L;

 

@Override

protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {

//this的一个原则是:谁调用指向谁~,所以这个this一定是

//指向调用这个方法的类

System.out.println(this);

System.out.println("============");

//夜光总结:

//springmvc框架的核心思想

//确定当前方法调用类是谁?

//我们需要知道调用这个类中哪一个方法~~

//通过反射机制构造这个方法并调用该方法

//通过方法的返回值,确定是转发还是重定向~~

//-----------3年内使得薪资翻倍

//-----------3年内成为技术骨干

//-----------3年内成为项目经理  5年成为项目总监

 

}

}

猜你喜欢

转载自blog.csdn.net/weixin_41987706/article/details/85124734